3

アプリ デリゲートで NSWindowController を使用してウィンドウを開こうとしています。NIB が関連付けられた基本的な NSWindowController を作成し、そのようにウィンドウを表示しようとしました。

@implementation MyAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Show the main window from a separate nib
    MyWindowController * theWindowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"];
    [theWindowController showWindow:self];
}
@end

アプリを起動すると、MyWindowController のウィンドウが一瞬だけ表示されます (起動するとすぐに解放されるようです)。

ARC を使用して、ウィンドウを強制的に固定し、すぐにフラッシュしないようにするにはどうすればよいですか? 私は NSDocuments を使用していません。これらの MyWindowController の多くを同時に使用できるようにしたいと考えています。

4

1 に答える 1

11

WindowConrollerを保持するプロパティをアプリデリゲート(またはアプリの存続期間中存続する他のオブジェクト)に追加する必要があります。例えば:

@interface MyAppDelegate : NSObject

@property (strong, nonatomic) MyWindowController * windowController;

@end

次に、ウィンドウコントローラを初期化するときにこのプロパティを設定します。

@implementation MyAppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Show the main window from a separate nib
    self.windowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"];
    [theWindowController showWindow:self];
}

@end
于 2012-07-26T19:59:47.320 に答える