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