2009-12-18 47 views
0

我有一個主窗口和麪板的xib文件。在awakeFromNib上我嘗試命令前面的主窗口,但面板仍然是關鍵窗口。在啓動時如何阻止面板成爲關鍵窗口?

- (void)awakeFromNib { 
[inspectionPanelOutlet orderBack:self]; 
[inspectionPanelOutlet orderWindow:NSWindowBelow relativeTo:0]; 
[window makeKeyAndOrderFront:self]; 
} 

此代碼沒有任何影響。

+1

這是因爲我的面板在同一廈門國際銀行作爲主窗口?應該每個窗口,對話框和麪板都在它自己的xib文件中嗎? – 2009-12-18 17:56:18

+0

IB用戶指南指出(第48頁): 許多剛接觸Interface Builder的開發人員犯的一個錯誤是將其應用程序的所有窗口和菜單放在這一個或兩個nib文件中。 猜想回答我的問題 – 2009-12-18 18:52:25

+0

不,這不是原因。一個xib中的窗口和麪板並不過分:如果它們在功能上相關,將它們放在一個nib或xib中沒有任何問題。一旦你的應用程序變得複雜,你可能想要將所有與配料有關的窗口和麪板分組在一個筆尖中,而配方相關的東西會進入另一個筆尖。 – 2009-12-18 22:12:03

回答

0

你確定awakeFromNib被調用(添加一個NSLog消息,看看它是否觸發)?如果叫你可能會想嘗試:

[self makeMainWindow]; 

[self makeKeyWindow]; 
+1

第一次崩潰 2009-12-18 12:42:49.235 MacSkirmish [3034:10b]未被捕獲的異常被喚起 2009-12-18 12:42:49.236 MacSkirmish [3034:10b]無效的參數不令人滿意:[self canBecomeMainWindow] 2009-12-18 12:42:49.236 MacSkirmish [3034:10b] ***由於未捕獲的異常'NSInternalInconsistencyException',原因:'無效參數不令人滿意:[self canBecomeMainWindow]' 第二個沒有效果 :( – 2009-12-18 17:43:29

+0

不知道爲什麼你會得到這個錯誤但是無論如何,我的回答違反了我嘗試編程的原則:如果沒有損壞,請不要修復它如果在Interface Builder中選擇面板並查看您將在「行爲」部分中看到的名爲「Visible At Launch」的複選框。查看主窗口unc嘿它的面板,並從awakeFromNib刪除所有的東西。如果你想學習如何通過點擊按鈕來顯示面板,請檢查FancyAbout。 – 2009-12-18 21:56:50

相關問題