NSWindow调整指标不可见

Kau*_*eya 10 macos cocoa nsview nswindow

如何在resize indicators没有Titlebar的情况下为NSWindow展示?


我用故事板创建了一个新的Xcode项目(适用于Mac应用程序).我刚刚禁用了Title BarAppearance中的复选框(它隐藏了NSwindow的标题栏).

奇怪的是,在禁用TitleBar后,当鼠标高于窗口边缘时,NSWindow没有显示调整大小指示器.虽然如果我拖动边缘,它会调整大小.

我猜这是一个错误,因为如果可以通过将鼠标拖过边缘来调整窗口大小,则必须显示调整大小指示符.


图片

从图像中可以看出,在用户拖动窗口后可以看到调整大小指示符,但是许多用户会认为由于没有调整大小指示符,因此窗口不可调整大小.

Bor*_*kyi 6

我通过子类化NSWindow和覆盖canBecomeKeyWindowreturn解决了这个问题YES

#import "MyWindow.h"

@implementation MyWindow

- (BOOL)canBecomeKeyWindow {
    return YES;
}

@end
Run Code Online (Sandbox Code Playgroud)

在这种情况下不更新调整大小光标看起来像 Apple 错误。文档指出“canBecomeKeyWindow属性的值是YES窗口是否有标题栏或调整大小栏,或者NO其他。”,所以我希望这canBecomeKeyWindow将返回YES可调整大小的窗口。但事实并非如此。

UPD:在 10.10.5 上检查。希望您在 10.11 上会有相同的行为。