點擊菜單項顯示NSWindow,但只是第一次,爲什麼是這樣,以及如何解決它?顯示NSWindow
-(IBAction)menuClick:(id)sender
{
if (!formsView) {
formsView = [[NSWindowController alloc] initWithWindowNibName:@"Forms"];
}
[formsView showWindow:self];
}
點擊菜單項顯示NSWindow,但只是第一次,爲什麼是這樣,以及如何解決它?顯示NSWindow
-(IBAction)menuClick:(id)sender
{
if (!formsView) {
formsView = [[NSWindowController alloc] initWithWindowNibName:@"Forms"];
}
[formsView showWindow:self];
}
這是我使用的相同的代碼,它的工作原理。問題必須在別處。
的問題是不是代碼,它在界面生成器設置。 (我仍在使用的Xcode 3.2所以在我的世界界面生成器是一個單獨的應用程序。)確保對文件的所有者在廈門國際銀行類設置爲NSWindowController
和其window
出口連接到窗口。
如果你不這樣做,可見在啓動被設置爲窗口,你會得到完全你描述的症狀。這是因爲initWithWindowNibName
加載了NIB文件,並且由於可見在啓動標誌而顯示窗口。但是,如果您查看NSWindowController
實例的window
屬性,則會看到它仍然爲零。這就是爲什麼當您再次撥打showWindow
時窗口不會重新顯示。 IB中的連接將窗口與控制器相關聯。
Here's a project that has IB set up correctly.
下面是IB的相關設置:
[window makeKeyAndOrderFront:self]
你能提供與此代碼的作品簡單的示例應用程序,請? – nukl
我會通過編輯我的答案來回復此問題。 – SSteve
是的,它現在有效。太好了,謝謝! – nukl