如果没有Titlebar,我如何向NSWindow显示resize indicators
?
我使用故事板创建了一个新的Xcode项目(适用于Mac应用)。我刚刚在Appearance中禁用了复选框Title Bar
(它隐藏了NSwindow的标题栏)。
奇怪的是,在禁用TitleBar后,当鼠标高于窗口边缘时,NSWindow没有显示调整大小指示器。虽然如果我拖动边缘,它会调整大小。
我猜这是一个错误,因为如果可以通过将鼠标拖过边缘来调整窗口大小,则必须显示调整大小指示符。
从图像中可以看出,在用户拖动窗口后会看到调整大小指示符,但是很多用户会认为由于没有调整大小指示符,因此窗口不可调整大小。
答案 0 :(得分:3)
我已通过继承NSWindow
并覆盖canBecomeKeyWindow
以返回YES
来解决此问题:
#import "MyWindow.h"
@implementation MyWindow
- (BOOL)canBecomeKeyWindow {
return YES;
}
@end
在这种情况下,不更新调整大小游标看起来像Apple bug。文档说明“如果窗口有标题栏或调整大小栏,则canBecomeKeyWindow
属性的值为YES
,否则为NO
。”,我希望canBecomeKeyWindow
将YES
返回 String str = "BLIS";
String strArray[] = str.split("");
for (int i = 0; i < strArray.length; i++) {
System.out.println(strArray[i]);
}
以获取可调整大小的窗口。但事实并非如此。
UPD:检查10.10.5。希望你在10.11上会有相同的行为。
答案 1 :(得分:1)
我没有检查过这个,但您可以手动设置调整大小指示器。我想我会在windows contentView子类中添加四个NSTrackingAreas(一个用于窗口的每一侧,高度/宽度只有几个像素)。 在mouseEntered()方法中,为适当的鼠标位置创建一个新的NSCursor对象。请记住,位置可能会发生变化,因此也请使用mouseMoved()方法。 在mouseExited()上重置光标。
同样,我没有尝试过,但它应该有效。
PS:不要忘记为此提供雷达;)