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