0

NSPopUpButtonCell当表格视图通过绑定和NSArrayController.

弹出式按钮单元已创建,但是当尝试通过覆盖弹出式按钮单元的setMenuItem:item方法来访问插座时,它是nil.
这是预期的行为..?
是否应该在创建时使用另一种方法来替换菜单?

基本上,我需要插座链接回NSWindowController该文档窗口的控制器 ( ),以便NSPopUpButtonCell在填充时从自定义弹出按钮相应地自定义菜单。

使用绑定的解决方案会更好 - 但是在覆盖时,setObjectValue:我可以看到它从来没有使用nil参数调用.. 但是,使用库存NSPopUpButtonCell会导致正确填充的弹出菜单。
(另请参阅为什么 NSPopUpButtonCell 仅在调用 setObjectValue:nil 时正确显示)。

4

1 回答 1

1

您无需覆盖任何内容即可在 NSTableView 列中填充 NSPopUpButtonCell。要知道的是您在 NSTableColumn 上而不是在单元格本身上设置绑定。通常,您的 xib 中有一个 NSArrayController 绑定到包含弹出窗口的所有选项的 NSArray,然后您将选择带有弹出单元格的列并转到它的绑定。就像在这个屏幕截图中一样(注意右侧检查器中填充的内容、内容对象和选定对象绑定):

显示弹出单元格列的 NSTableColumn 绑定的 Xcode 屏幕截图

如果你想要一个工作示例,你可以查看我为另一个 StackOverflow 问题准备的这个项目。有一堆不相关的东西与使 NSPopUpButtonCell 使用 NSAttributedStrings 相关,但 xib 中的绑定构成了如何将 NSTableColumn 与弹出窗口绑定的工作示例,该弹出窗口的选项由绑定填充。

于 2012-12-04T12:50:12.307 回答