我在将 NSMenuItem 的“值”绑定到 BOOL 时遇到一些问题。
我将问题简化为:
1) 菜单项必须调用更改 BOOL 值的操作方法,否则它不起作用(即,如果 NSButton 调用更改 BOOL 值的方法,则菜单项不会更新)
2) 即使动作方法使 BOOL 成为常量(即enabled = YES
),菜单项的“值”仍然交替出现。
有任何想法吗?我很混乱!
这是代码:
MenuBindings_AppDelegate.h
#import <Cocoa/Cocoa.h>
@interface Menu_BindingsAppDelegate : NSObject <NSApplicationDelegate>
{
BOOL foo;
}
- (IBAction)toggle:(id)sender;
- (IBAction)makeYes:(id)sender;
@property BOOL foo;
@end
Menu_BindingsAppDelegate.m
@implementation Menu_BindingsAppDelegate
@synthesize foo;
- (IBAction)toggle:(id)sender
{
[self setFoo:!foo];
}
- (IBAction)makeYes:(id)sender
{
[self setFoo:YES];
}
@end
在我的笔尖中,我有一个连接到 -makeYes: 操作的按钮和一个连接到 -toggle: 操作的菜单项。菜单项的“值”绑定绑定到应用程序委托的“foo”属性。
谢谢。