2012-02-07 26 views
0

當我使用的是NSWindow並設置禁用的一級NSStatusWindowLevelNSStatusWindowLevel呈現窗口片

[aWindow setLevel:NSStatusWindowLevel]; 

現在,當我提出一個表(self是我的表窗口)

modalAnswer = 0; 
[NSApp beginSheet:self modalForWindow:aWindow modalDelegate:self didEndSelector:NULL contextInfo:nil]; 
[self makeKeyAndOrderFront:nil]; 

那麼窗口不會出現在碼頭上方,它隱藏在底下(意味着NSStatusWindowLevel不再工作)。 我試過改變表單窗口的級別,但它不起作用。

這是什麼原因造成的?

回答

0

我問技術支持,他們發現這是一個愚蠢的錯誤:表通常是模態的,但我也使自己模態。

beginModalSessionForWindow和runModalSession的組合是這裏的問題。 它似乎在服務於導致菜單欄和Dock出現在窗口上的默認運行循環。

我有點困惑,爲什麼你要調用beginSheet:modalForWindow,然後使用NSApp的beginModalSessionForWindow。爲什麼手動添加模態會話?工作表會自動模式化到所連接的任何窗口。我習慣於使用「beginModalSessionForWindow」,而不使用表單。

相關問題