次のようにして、作成したインスタンスstrongへの参照を作成する必要があります。NSWindowController
.h:
@class MDWindowController;
@interface MDAppDelegate : NSObject <NSApplicationDelegate> {
__weak IBOutlet NSWindow *window;
MDWindowController *windowController;
}
@property (weak) IBOutlet NSWindow *window;
@property (strong) MDWindowController *windowController;
- (IBAction)showSecondWindow:(id)sender;
@end
.m:
#import "MDAppDelegate.h"
#import "MDWindowController.h"
@implementation MDAppDelegate
@synthesize window;
@synthesize windowController;
- (IBAction)showSecondWindow:(id)sender {
if (windowController == nil) windowController =
[[MDWindowController alloc] init];
[windowController showWindow:nil];
}
@end
makeKeyAndOrderFront:メソッドを の に直接送信するNSWindowControllerのではなく、の組み込みメソッドをそのままNSWindow使用できることに注意してください。NSWindowControllershowWindow:
上記のコード (および以下のサンプル プロジェクト) では のカスタム サブクラスをNSWindowController使用していますが、ジェネリックも使用して を使用NSWindowControllerしてインスタンスを作成しますinitWithWindowNibName:(nib ファイルのファイルの所有者が のNSWindowControllerようなカスタム サブクラスではなくに設定されていることを確認してMDWindowControllerください)。
サンプル プロジェクト:
http://www.markdouma.com/developer/MDWindowController.zip