我真的需要实现 outlineView(_:objectForValue:byItem:) 吗?如何?
Do I really need to implement outlineView(_:objectForValue:byItem:)? How?
我想在 不使用 的情况下使用 Cocoa 绑定实现大纲视图。
我查看了 this tutorial 等,其中 none 使用了数据源方法
optional func outlineView(_ outlineView: NSOutlineView,
objectValueFor tableColumn: NSTableColumn?,
byItem item: Any?) -> Any?
但是,Apple documentation 指出:
While this method is marked as @optional
in the protocol, you must implement this method if you are not providing the data for the outline view using Cocoa bindings.
对于教程,它似乎没有那个方法。 但是它有什么用处以及应该如何使用?
(让我感到困惑的是,它看起来应该是 return 一个数据对象,但它被传递了一个 item
参数作为输入, 是 我理解的数据对象。)
NSTableView
/NSOutlineView
及其文档一团糟。
outlineView(_:objectForValue:byItem:)
的byItem
参数是行表示的对象,return值是单元格表示的对象。比较 tableView(_:objectValueFor:row:) return 值是
An item in the data source in the specified table column of the view.
另见 the objectValue property of NSTableCellView
The object that represents the cell data.
The objectValue is automatically set by the table when using bindings or is the object returned by the NSTableViewDataSource protocol method tableView(_:objectValueFor:row:).
实际上绑定table视图内容时,objectValue
是行对象。
NSOutlineView.h 说 outlineView(_:objectValueFor:byItem:)
:
NOTE: this method is optional for the View Based OutlineView.
Apple 的文档
While this method is marked as @optional in the protocol, you must implement this method if you are not providing the data for the outline view using Cocoa bindings.
仅对基于单元格的大纲视图有效。
如果您在 outlineView(_:viewFor:item:)
中的单元格中设置控件的值,那么您不必实施 outlineView(_:objectValueFor:byItem:)
。
如果要使用单元格视图的objectValue
属性,请执行outlineView(_:objectValueFor:byItem:)
。例如当绑定单元格中控件的值而不绑定大纲视图的内容时。
我想在 不使用 的情况下使用 Cocoa 绑定实现大纲视图。
我查看了 this tutorial 等,其中 none 使用了数据源方法
optional func outlineView(_ outlineView: NSOutlineView,
objectValueFor tableColumn: NSTableColumn?,
byItem item: Any?) -> Any?
但是,Apple documentation 指出:
While this method is marked as
@optional
in the protocol, you must implement this method if you are not providing the data for the outline view using Cocoa bindings.
对于教程,它似乎没有那个方法。 但是它有什么用处以及应该如何使用?
(让我感到困惑的是,它看起来应该是 return 一个数据对象,但它被传递了一个 item
参数作为输入, 是 我理解的数据对象。)
NSTableView
/NSOutlineView
及其文档一团糟。
outlineView(_:objectForValue:byItem:)
的byItem
参数是行表示的对象,return值是单元格表示的对象。比较 tableView(_:objectValueFor:row:) return 值是
An item in the data source in the specified table column of the view.
另见 the objectValue property of NSTableCellView
The object that represents the cell data.
The objectValue is automatically set by the table when using bindings or is the object returned by the NSTableViewDataSource protocol method tableView(_:objectValueFor:row:).
实际上绑定table视图内容时,objectValue
是行对象。
NSOutlineView.h 说 outlineView(_:objectValueFor:byItem:)
:
NOTE: this method is optional for the View Based OutlineView.
Apple 的文档
While this method is marked as @optional in the protocol, you must implement this method if you are not providing the data for the outline view using Cocoa bindings.
仅对基于单元格的大纲视图有效。
如果您在 outlineView(_:viewFor:item:)
中的单元格中设置控件的值,那么您不必实施 outlineView(_:objectValueFor:byItem:)
。
如果要使用单元格视图的objectValue
属性,请执行outlineView(_:objectValueFor:byItem:)
。例如当绑定单元格中控件的值而不绑定大纲视图的内容时。