如何将 NSOutlineViewDataSource 添加到我的 NSOutlineView?
How do I add a NSOutlineViewDataSource to my NSOutlineView?
我正在为 Mac OS X 在 Objective-C 中编写系统偏好面板。该面板包括一个绑定到正确配置的 NSTreeController
的 NSOutlineView
。我还为我的 OutlineView
添加了一个委托 class,我在其中定义了我自己的 outlineView:viewForTableColumn:item:
方法。
当我向 Tree Controller 添加新对象时一切正常,但现在我想在 OutlineView 的数据源中启用 persistence for expanded items. To do so I need to implement outlineView:itemForPersistentObject: and outlineView:persistentObjectForItem:,否则我会收到错误消息:
*** NSOutlineView data source ((null)) does not implement outlineView:persistentObjectForItem:
根据我当前的设置,我该怎么做?
您是否将 class(提供数据的 class)声明为 NSOutlineViewDataSource?沿着这些线的东西:
@interface YourClass : NSObject <NSApplicationDelegate, NSWindowDelegate, NSUserNotificationCenterDelegate, NSTableViewDataSource, NSTableViewDelegate, NSOutlineViewDataSource, NSOpenSavePanelDelegate>
*其他声明只是示例,在这种特殊情况下,YourClass 继承自其他几个声明。
声明后,您可以使用绑定,也可以手动将数据源连接到 outlineView。
委托和数据源可以是同一个对象。实现 OutlineViewDelegate
中的方法并将数据源连接到与委托相同的对象。
我正在为 Mac OS X 在 Objective-C 中编写系统偏好面板。该面板包括一个绑定到正确配置的 NSTreeController
的 NSOutlineView
。我还为我的 OutlineView
添加了一个委托 class,我在其中定义了我自己的 outlineView:viewForTableColumn:item:
方法。
当我向 Tree Controller 添加新对象时一切正常,但现在我想在 OutlineView 的数据源中启用 persistence for expanded items. To do so I need to implement outlineView:itemForPersistentObject: and outlineView:persistentObjectForItem:,否则我会收到错误消息:
*** NSOutlineView data source ((null)) does not implement outlineView:persistentObjectForItem:
根据我当前的设置,我该怎么做?
您是否将 class(提供数据的 class)声明为 NSOutlineViewDataSource?沿着这些线的东西:
@interface YourClass : NSObject <NSApplicationDelegate, NSWindowDelegate, NSUserNotificationCenterDelegate, NSTableViewDataSource, NSTableViewDelegate, NSOutlineViewDataSource, NSOpenSavePanelDelegate>
*其他声明只是示例,在这种特殊情况下,YourClass 继承自其他几个声明。
声明后,您可以使用绑定,也可以手动将数据源连接到 outlineView。
委托和数据源可以是同一个对象。实现 OutlineViewDelegate
中的方法并将数据源连接到与委托相同的对象。