簡體   English   中英

呈現窗口工作表時禁用NSStatusWindowLevel

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM