cocoa - 如何将 NSMenuItem 绑定(bind)到 NSArrayController

标签 cocoa binding nstableview nsarraycontroller nsmenuitem

如何将 NSMenuItem 的启用状态绑定(bind)到 NSArrayController 的选择?我尝试将项目的启用状态绑定(bind)到 Controller 的 selectedObjects 或 selectedIndexes ,并且在两种情况下,当有选择时,菜单项都不会启用。在 IB 中,我取消选中“启用”复选框。我只是希望当表中有选择时启用 NSMenuItem。我的表允许多项选择,我还使用了一个绑定(bind)到 selectedObjects.@count 的按钮,并且该按钮按预期启用/禁用,所以我认为使用相同的键路径也适用于菜单项,但不是。这并不困难,因为我无法通过谷歌找到答案,所以我认为它一定很简单。 谢谢

最佳答案

启用的绑定(bind)必须获取一个 BOOL 值,不幸的是,它不会将任何旧对象视为 bool True。不过幸运的是,NSValueTransformer 可以轻松做到这一点。 NSValueTransformer Class Reference 中有几个常量被命名。您可以在 IB 的绑定(bind) Pane 中使用它。

在您的情况下,您可以将模型键路径绑定(bind)到“selectedObjects”,并在“值转换器”字段中输入“NSINotNil”。转换器为绑定(bind)提供它所需的 BOOL 值。

关于cocoa - 如何将 NSMenuItem 绑定(bind)到 NSArrayController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5481817/

相关文章:

objective-c - 从其他类调用方法没有任何作用?

c# - 使用 { } 的事件绑定(bind)

objective-c - 对 NSTableView 的简单尝试,它没有显示任何内容

Cocoa 类不在 NSWindow 中显示数据

java - AppBundler 不在 OS X Java App 中包含来自 JRE 的二进制文件

ios - 将 XCode 输出写入文件

objective-c - SecKeychain加载项

C# WPF MVVM 组合框绑定(bind)

c# - 哪种语言具有最好的 Git API 绑定(bind)?

cocoa - NSTableView 选定的行颜色(在选择时删除 NSTableView 的边框)