【发布时间】:2012-11-19 18:45:13
【问题描述】:
我在通过绑定和NSArrayController 填充表视图时实例化的表中的自定义NSPopUpButtonCell 遇到问题。
创建了弹出式按钮单元,但是当尝试通过覆盖弹出式按钮单元的setMenuItem:item 方法访问插座时,它是nil。
这是预期的行为吗..?
是否应该在创建时使用其他方法来替换菜单?
基本上,我需要插座链接回该文档窗口的控制器 (NSWindowController),以便在填充时从自定义弹出按钮相应地自定义 NSPopUpButtonCell 菜单。
使用绑定的解决方案会更好 - 但是当覆盖 setObjectValue: 时,我可以看到它永远不会使用 nil 参数调用.. 使用股票 NSPopUpButtonCell 会导致正确填充的弹出菜单。
(另见Why is NSPopUpButtonCell showing correctly when only setObjectValue:nil is called)。
【问题讨论】:
-
您的弹出按钮的菜单是否也由绑定填充?如果是这样,那么您不会通过插座来更新它,而是通过更新它所绑定的数组来更新它。
-
它是 - 但
setObjectValue:永远不会使用有效内容调用,它始终是nil(另请参阅Why is NSPopUpButtonCell showing correctly when only setObjectValue:nil is called)。那么如何从NSPopUpButtonCell.. 中获取绑定值? -
也许我不理解你的情况——我真的不知道你从弹出按钮单元格中获取值是什么意思。这些值来自一个数组,因此您应该从那里获取值。如果您能提供更多关于您正在尝试做的事情的详细信息,那将会很有帮助。
-
问题改写 - 我想问题是如何使用绑定填充弹出按钮单元格,即我们需要覆盖什么。
标签: objective-c cocoa cocoa-bindings nspopupbuttoncell