在 NSTableView 中绑定列
我有两个类:GHTable
和 GHColumn
。 GHTable
对象有一个 NSMutableArray
和 GHColumn
对象。每个 GHColumn
都有一个 name
属性 (NSString
)。
我制作了一个 UML 图来使这一点更加清楚。请注意,我不使用核心数据:
我想绑定列将
属性添加到 GHTable
对象的NSTableView
的列。我想将 NSTableView
的列标题绑定到相应 GHColumn
的 name
属性。
我的问题:有没有办法通过 Cocoa Bindings 来做到这一点,如果有的话:如何实现?或者我是否需要手动实现NSTableView
的数据源?
I have two classes: GHTable
and GHColumn
. A GHTable
object has an NSMutableArray
with GHColumn
objects. Each GHColumn
has a name
property (NSString
).
I have made an UML diagram to make this more clear. Note that I am not using Core Data:
I want to bind the columns
property of the GHTable
object to the columns of an NSTableView
. I want to bind the titles of the columns of the NSTableView
to the name
property of the corresponding GHColumn
.
My question: is there a way to do this through Cocoa Bindings, and if so: how? Or do I need to manually implement the data source for the NSTableView
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您将需要使用 NSArrayController。将其
Content Array
绑定到 GHTable 对象上的可变数组。在 NSTableView 中,将
Content
绑定到 NSArrayController 的arrangedObjects
控制器键。在 NSTableView 的列中,使用模型键路径
name
将 Value 绑定到 NSArrayController 的arrangedObjects
控制器键。如果单击表视图时检查器窗口的标题显示为“Scroll View Bindings”,则在内容区域上再次单击它,它应该更改为“Table View Bindings”。
再次单击表的列将其选中,标题应更改为“表列绑定”。
You will need to use an NSArrayController. Bind its
Content Array
binding to the mutable array on your GHTable object.In the NSTableView, bind
Content
to the NSArrayController'sarrangedObjects
contoller key.In the NSTableView's column, bind Value to the NSArrayController's
arrangedObjects
controller key with the model key pathname
.If the inspector window shows "Scroll View Bindings" as its title when you click the table view, click it again on the content area and it should change to "Table View Bindings".
Click again on the table's column to select it and the title should change to "Table Column Bindings".