从单独的笔尖(非模态)显示NSWindow

bri*_*dir 3 cocoa objective-c nib nswindow nsapplication

怎么做?我只是想加载一个窗口并将其显示在主窗口的前面.

NSWindowController* controller = [[NSWindowController alloc] initWithWindowNibName: @"MyWindow"];
NSWindow* myWindow = [controller window];
[myWindow makeKeyAndOrderFront: nil];
Run Code Online (Sandbox Code Playgroud)

此代码显示窗口一会儿然后隐藏它.恕我直言这是因为我不保持对窗口的引用(我使用ARC).[NSApp runModalForWindow: myWindow];效果很好,但我不需要以模态显示它.

tor*_*ons 6

是的,如果您没有对窗口的引用,那么当您退出所在的例程时,它会立即被拆除.您需要在ivar中对它进行强有力的引用.[NSApp runModalForWindow: myWindow]是不同的,因为NSApplication只要对象以模态方式运行,该对象就会保存对窗口的引用.