objective-c - 在 NSMenuItem 中显示模型的数据

标签 objective-c cocoa-bindings nsmenuitem

我想在状态栏菜单中显示我的模型的一些数据。因此,我将实体对象绑定(bind)到 NSMenuItem 的标题:

        [self.statusMenu setAutoenablesItems:NO];

        NSMenuItem * exportMenuItem = [[NSMenuItem alloc] init];
        [exportMenuItem bind:@"title" toObject:expo withKeyPath:@"menuItemTitle" options:nil];
        [exportMenuItem setEnabled:NO];

        [self.statusMenu insertItem:exportMenuItem atIndex:3];

从 init 开始它工作正常。但是当我更新我的模型时,它不会更新 NSMenuItem 的标题。

最佳答案

作为引用,这个问题的规范解决方案是实现这样的类方法:

+ (NSSet *)keyPathsForValuesAffectingMenuItemTitle
{
    return [NSSet setWithObjects: @"propertyMenuItemTitleDependsOn1", 
                                  @"propertyMenuItemTitleDependsOn2",
                                  nil];
}

如果您实现这样的方法,那么框架将随时处理调用 willChangeValueForKey:didChangeValueForKey:menuItemTitle其他属性的更改。

关于objective-c - 在 NSMenuItem 中显示模型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13724306/

相关文章:

ios - 部分 segue 以显示设置 View

iphone - 如何在不打开应用程序的情况下更改应用程序图标?

objective-c - 在 Swift 中从 vDSP DSPSplitComplex 创建 Metal 缓冲区

cocoa - 如何将按钮的启用绑定(bind)与 NSArrayController 是否有选择绑定(bind)?

cocoa - NSMenuItem 自定义 View 不响应 keyEquivalent

macos - 将静态项目添加到 Cocoa 应用程序中的 "Windows"菜单

objective-c - Xcode 4.2 小数位

cocoa - NSObject Controller 的选择是什么?

c++ - 是否有任何语言绑定(bind)可用于 NSSpeechSynthesizer Cocoa 类?

Swift:如何在 NSMenuItem 处于事件状态(可见)时更新它?