11

だから私は次のように新しい NSWindow を開こうとしています:

NSWindowController *winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[winCon showWindow:self];

これを行うと、新しいウィンドウが画面上で点滅し、表示されてからすぐに消えます。私は自分のウィンドウが IB とすべてで正しく参照されていることを知っています。ウィンドウを表示したいようですが、すぐに割り当てが解除されるか、何か奇妙なことが起こります。どんな助けでも大歓迎です。

4

1 に答える 1

18

まず、イニシャライザの名前は-initWithNibName:ではなく-initWithWindowNibName:.

次に、これは ARC を使用している場合に当てはまりますNSWindowController。メソッドが終了すると、参照も終了します。

たとえば、代わりにアプリケーション デリゲート インターフェイスでこれを行うとします。

@property(strong) NSWindowController *winCon;

そしてそれを実装ファイルに合成しました:

@synthesize winCon;

次に、次のように設定できます。

self.winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[self.winCon showWindow:self];

これで、ウィンドウが消えなくなりました。アプリケーションが閉じると、ウィンドウ コントローラーが解放されます。

于 2012-11-29T04:35:37.513 に答える