以编程方式打开nib时,NSUserDefaults无法正常工作

时间:2011-08-31 17:57:14

标签: objective-c nsuserdefaults nswindowcontroller

在启动时显示的窗口中,NSUserDefaults在初始窗口中运行良好。如果我使用此代码以编程方式再次打开相同的nib文件:

NSWindowController *controller = [[NSWindowController alloc] initWithWindowNibName:@"MainMenu"];
[controller showWindow:self];

无法获得NSUserDefaults。我得到(null)的值。我读了这样的默认值:
[[NSUserDefaults standardUserDefaults] valueForKey:@"myKey"];

并写信给他们:
[[NSUserDefaults standardUserDefaults] setValue:@"myValue" forKey:@"myKey"];

我做错了什么?设置值并重新启动应用程序后,重新打开prog。加载的nib窗口失败了!

我从NIB文件连接到的类打开这个以编程方式打开的窗口 - >用户按下按钮,第二个窗口打开!

1 个答案:

答案 0 :(得分:0)

我现在自己发现了这个问题。我在.h中定义了一个NSUserDefaults变量,因此我可以在整个.m文件中访问它。我在mainDefaults = [NSUserDefaults standardUserDefaults]中初始化它- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{},它只在应用程序启动时调用!当我打开一个新窗口时,当然没有调用它!

无论如何,谢谢你的帮助。