![](/img/trans.png)
[英]How do I get keyboard events in an NSStatusWindowLevel window while my application is not frontmost?
[英]NSStatusWindowLevel disabled when presenting window sheet
我正在使用NSWindow
並將其級別設置為NSStatusWindowLevel
:
[aWindow setLevel:NSStatusWindowLevel];
現在,當我出示工作表時( self
是我的工作表窗口)
modalAnswer = 0;
[NSApp beginSheet:self modalForWindow:aWindow modalDelegate:self didEndSelector:NULL contextInfo:nil];
[self makeKeyAndOrderFront:nil];
那么該窗口將不會顯示在停靠區上方,而是隱藏在其下方(這意味着NSStatusWindowLevel
不再起作用)。 我嘗試過更改工作表窗口的級別,但是它不起作用。
是什么導致此問題?
我尋求技術支持,他們發現這是一個愚蠢的錯誤:工作表通常是模態的,但我自己也是模態的。
這里的問題是beginModalSessionForWindow和runModalSession的組合。 它似乎在為默認的運行循環提供服務,這導致菜單欄和Dock出現在窗口上方。
對於您為什么要調用beginSheet:modalForWindow,然后使用NSApp的beginModalSessionForWindow,我有些困惑。 為什么要手動添加模式會話? 圖紙將自動模態化到其附加到的任何窗口。 我習慣於使用“ beginModalSessionForWindow”,而在它們上面沒有工作表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.