【问题标题】:Core Data document based multiple nib based on selectionCore Data 文档基于多个 nib 基于选择
【发布时间】:2012-02-07 16:16:50
【问题描述】:

我正在构建一个基于核心数据文档的应用程序。在应用程序中有一个主视图(NSTableView)和一个检查器视图。两个视图都是单独的 nib 文件。检查器视图的内容应取决于主视图中的选定行。我有三个控制器文件:

  • DocumentWindowController(主控制器)
  • ItemsViewController(主视图)
  • SchedulesViewController(检查器的一部分)

每个控制器都拥有一个 nib 文件。当用户在主视图的表格中选择另一行时,如何更改检查器的内容?

我试着让它工作如下:

  • 每个控制器都有自己的 NSArrayController,它在 DocumentWindowController 中设置。 DocumentWindowController 从 [[self document] managedObjectContext]
  • 获取其 managedObjectContext
  • 当用户单击 ItemsViewController 的 tableView 中的一行时,会发布一个 NSNotification,其中 [NSTableView selectedRow] 作为参数。然后正在发出提取请求。

我的直觉告诉我必须用 Cocoa 绑定来做这件事。 我在 Stackoverflow 和 google 上进行了搜索,但我无法让它工作。如果一切都在一个 nib 文件中,则很容易完成。实现这一目标的最佳/最常用方法是什么?

提前致谢!

【问题讨论】:

    标签: objective-c cocoa core-data cocoa-bindings document-based


    【解决方案1】:

    您可以遵循与表格视图相同的范例,并为您的检查器视图创建数据源。

    @protocol InspectorDataSource <NSObject>
    - (void) inspectorView:(InspectorView*)inspectorView managedObjectSelected:(NSManagedObject*)managedObject;
    @end
    

    然后,您的检查器视图控制器会将数据源作为属性。

    @interface InspectorViewController : UIViewController{
        @public
        id<InspectorDataSource> dataSource;
    }
    @property (nonatomic, assign) id<InspectorDataSource> dataSource;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-03
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      相关资源
      最近更新 更多