Preferences情報を NSUserDefaultsController で管理する場合、自前のコントローラコードでこれを参照するにはどうするか。単純にアウトレットでつなぎ NSUserDefaultsを取得してみた。
ボタンを押すと MyControllerクラスがPrefereces情報から FileNameを取得して表示する。
ソース: BindingPreferences2.zip
MyController.h
@interface MyController : NSObject {
IBOutlet NSTextField* _label;
IBOutlet NSUserDefaultsController* _user_defaults_controller;
}
-(IBAction)getName:(id)sender;
InterfaceBuilderで上記アウトレットをそれぞれ繋いでおく。
MyController.m
-(IBAction)getName:(id)sender
{
NSUserDefaults* defaults = [_user_defaults_controller defaults];
NSString* str = [defaults stringForKey:@"FileName"];
[_label setStringValue:str];
}
ボタンが押されたらアウトレットの NSUserDefaultsControllerを経由して NSUserDefaultsを取得する。
ベタだが、裏方はこんなところか。