繁体   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