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
私の nib には、-makeYes: アクションに接続されたボタンと、-toggle: アクションに接続されたメニュー項目があります。メニュー項目の「値」バインディングは、アプリ デリゲートの「foo」属性にバインドされます。
ありがとう。