0

起動時に表示されるウィンドウと NSUserDefaults は、最初のウィンドウでうまく機能します。このコードを使用して、同じ nib ファイルをプログラムで再度開くと、次のようになります。

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

NSUserDefaults の取得に失敗します。の値を取得します(null)。私は次のようにデフォルトを読みました:
[[NSUserDefaults standardUserDefaults] valueForKey:@"myKey"];

次のように書きます。
[[NSUserDefaults standardUserDefaults] setValue:@"myValue" forKey:@"myKey"];

私は何を間違っていますか?値を設定してアプリケーションを再起動したら、プログラムを再度開きます。ロードされたペン先ウィンドウは失敗します!

NIBファイルが接続されているクラスからプログラムで開いたこのウィンドウを開きます->ユーザーがボタンを押すと、2番目のウィンドウが開きます!

4

1 に答える 1

0

私は今自分で問題を見つけました。.h で定義された NSUserDefaults 変数を持っていたので、.m ファイル全体でアクセスできます。アプリケーションの起動時にのみ呼び出される でmainDefaults = [NSUserDefaults standardUserDefaults]、を初期化していました。- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{}新しいウィンドウを開いたとき、もちろんそれは呼び出されませんでした!

とにかく、助けてくれてありがとう。

于 2011-08-31T18:28:54.123 に答える