在启动时显示的窗口中,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文件连接到的类打开这个以编程方式打开的窗口 - >用户按下按钮,第二个窗口打开!
答案 0 :(得分:0)
我现在自己发现了这个问题。我在.h中定义了一个NSUserDefaults变量,因此我可以在整个.m文件中访问它。我在mainDefaults = [NSUserDefaults standardUserDefaults]
中初始化它- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{}
,它只在应用程序启动时调用!当我打开一个新窗口时,当然没有调用它!
无论如何,谢谢你的帮助。