我想在状态栏菜单中显示我的模型的一些数据。因此,我将实体对象绑定(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/