gpt4 book ai didi

objective-c - 自定义 NSPopUpButton 单元 socket /绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 17:55:58 25 4
gpt4 key购买 nike

我在通过绑定(bind)和 NSArrayController 填充 TableView 时实例化的表中的自定义 NSPopUpButtonCell 遇到问题。

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

基本上,我需要 socket 链接回该文档窗口的 Controller (NSWindowController),以便我可以在自定义弹出按钮时相应地自定义 NSPopUpButtonCell 菜单。已填充。

使用绑定(bind)的解决方案会更好 - 但是当覆盖 setObjectValue: 时,我可以看到它只是从未使用 nil 参数调用..使用库存 不过,NSPopUpButtonCell 会生成正确填充的弹出菜单。
(另见Why is NSPopUpButtonCell showing correctly when only setObjectValue:nil is called)。

最佳答案

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

Screenshot of Xcode showing NSTableColumn bindings for pop-up cell column

如果您想要一个有效的示例,您可以查看this project我又提出了另一个 StackOverflow 问题。有一堆与使 NSPopUpButtonCell 使用 NSAttributedStrings 相关的不相关内容,但 xib 中的绑定(bind)构成了如何将 NSTableColumn 与弹出窗口绑定(bind)的工作示例,弹出窗口的选项由绑定(bind)填充。

关于objective-c - 自定义 NSPopUpButton 单元 socket /绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13460116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com