簡體   English   中英

NSWindow調整指標不可見

[英]NSWindow resize indicator not visible

如何在沒有Titlebar的情況下顯示NSWindow的resize indicators


我用故事板創建了一個新的Xcode項目(適用於Mac應用程序)。 我只是禁用該復選框Title Bar的外觀(它隱藏NSwindow的標題欄)。

奇怪的是,在禁用TitleBar后,當鼠標高於窗口邊緣時,NSWindow沒有顯示調整大小指示器。 雖然如果我拖動邊緣,它會調整大小。

我猜這是一個錯誤,因為如果可以通過將鼠標拖過邊緣來調整窗口大小,則必須顯示調整大小指示符。


圖片

從圖像中可以看出,在用戶拖動窗口后可以看到調整大小指示符,但是許多用戶會認為由於沒有調整大小指示符,因此窗口不可調整大小。

我通過canBecomeKeyWindow NSWindow並重寫canBecomeKeyWindow來修復此問題,返回YES

#import "MyWindow.h"

@implementation MyWindow

- (BOOL)canBecomeKeyWindow {
    return YES;
}

@end

在這種情況下不更新調整大小游標看起來像Apple bug。 文檔說明“如果窗口有標題欄或調整大小條,則canBecomeKeyWindow屬性的值為YES ,否則為NO 。”,所以我希望canBecomeKeyWindow將為可調整大小的窗口返回YES 但事實並非如此。

UPD:檢查10.10.5。 希望你在10.11上會有相同的行為。

我沒有檢查過這個,但您可以手動設置調整大小指示器。 我想我會在windows contentView子類中添加四個NSTrackingAreas(一個用於窗口的每一側,高度/寬度只有幾個像素)。 在mouseEntered()方法中,為適當的鼠標位置創建一個新的NSCursor對象。 請記住,位置可能會發生變化,因此也請使用mouseMoved()方法。 在mouseExited()上重置光標。

我再次嘗試過,但它應該可行。

PS:不要忘記為此提交雷達;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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