使用 NSTableViewDataSource 填充 NSPopUpButtonCell 的正确方法
假设一个人有很多辆车,并且他们有一辆最喜欢的车。我似乎无法在文档中找到它描述了在表视图中填充 NSPopUpButtonCell 的正确方法,每行都不同。
例如,我将为每个人设置 1 行,“最喜欢的汽车”列中将有一个 NSPopUpButtonCell。每行都有不同的菜单项。第 1 排(Camaro、Cavalier、F150) 第 2 排(745li、Camaro、Town Car)等...
Lets say a Person has many Cars and they have a favorite Car. I cannot seem to find in the docs where it describes the right way to populate the NSPopUpButtonCell in a tableview, differently for each row.
For example, I would have 1 row for each person, the Favorite Car column would have an NSPopUpButtonCell in it. Each row has different menu items. Row 1 (Camaro, Cavalier, F150) Row 2 (745li, Camaro, Town Car) etc...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
来自 NSTableColumn.h 文件
该表将向数据源询问弹出单元格中的 selectedIndex,然后向委托询问菜单项。我的委托和数据源是同一个对象,我们称其为 tableViewController。
当 tableViewController 在 objectValueForTableColumn: (数据源方法)中提供 selectedIndex 时,菜单中没有所有菜单时间,因此我必须调用 dataCellForRow 来获取菜单和菜单中所选项目的索引.
tableViewController 实现 dataCellForRow: 它创建一个新的 NSPopUpButtonCell 并用菜单项填充它。
它有效,但看起来很复杂。
From the NSTableColumn.h file
The table will ask the datasource for the selectedIndex in the popupcell, then it will ask the delegate for the menu items. I had my delegate and datasource the same object, lets call it a tableViewController.
When the tableViewController is providing the selectedIndex in the objectValueForTableColumn: (datasource method), the menu doesn't have all the menu times in it, so I have to call the dataCellForRow to get the menu and the index of the selected item in the menu.
The tableViewController implements the dataCellForRow: which creates a new NSPopUpButtonCell and populates it with the menu items.
It works, but seems convoluted.