NSWindow 调整大小指示器不可见
NSWindow resize indicator not visible
如何为没有标题栏的 NSWindow 显示 resize indicators
?
我用故事板创建了一个新的 Xcode 项目(针对 Mac 应用程序)。我只是在外观中禁用了复选框Title Bar
(它隐藏了NSwindow的标题栏)。
奇怪的是,禁用 TitleBar 后,当鼠标位于 window 边缘上方时,NSWindow 没有显示调整大小指示器。虽然如果我在边缘拖动它正在调整大小。
我猜这是一个错误,因为如果 window 可以通过将鼠标拖过边缘来调整大小,它必须显示调整大小指示器。
如图所示,用户拖动 window 后可以看到调整大小指示器,但许多用户会认为,由于没有调整大小指示器,所以 window 不是可调整大小。
我没有检查过这个,但你可以手动设置调整大小指示器。我想我会向 windows contentView 子类添加四个 NSTrackingAreas([=19= 的每一侧各一个,height/width 中只有几个像素)。
在 mouseEntered() 方法中,为适当的鼠标位置创建一个新的 NSCursor 对象。请记住,位置可能会改变,因此也请使用 mouseMoved() 方法。
在 mouseExited() 上重置光标。
同样,我还没有尝试过,但应该可以。
PS:别忘了提交雷达 ;)
我已通过子类化 NSWindow
并将 canBecomeKeyWindow
重写为 return 来解决此问题 YES
:
#import "MyWindow.h"
@implementation MyWindow
- (BOOL)canBecomeKeyWindow {
return YES;
}
@end
在这种情况下不更新调整大小游标看起来像 Apple 错误。文档说明 "The value of canBecomeKeyWindow
property is YES
if the window has a title bar or a resize bar, or NO
otherwise.",因此我预计 canBecomeKeyWindow
将 return YES
用于可调整大小 window。但事实并非如此。
UPD:在 10.10.5 检查。希望您在 10.11 上会有相同的行为。
如何为没有标题栏的 NSWindow 显示 resize indicators
?
我用故事板创建了一个新的 Xcode 项目(针对 Mac 应用程序)。我只是在外观中禁用了复选框Title Bar
(它隐藏了NSwindow的标题栏)。
奇怪的是,禁用 TitleBar 后,当鼠标位于 window 边缘上方时,NSWindow 没有显示调整大小指示器。虽然如果我在边缘拖动它正在调整大小。
我猜这是一个错误,因为如果 window 可以通过将鼠标拖过边缘来调整大小,它必须显示调整大小指示器。
如图所示,用户拖动 window 后可以看到调整大小指示器,但许多用户会认为,由于没有调整大小指示器,所以 window 不是可调整大小。
我没有检查过这个,但你可以手动设置调整大小指示器。我想我会向 windows contentView 子类添加四个 NSTrackingAreas([=19= 的每一侧各一个,height/width 中只有几个像素)。 在 mouseEntered() 方法中,为适当的鼠标位置创建一个新的 NSCursor 对象。请记住,位置可能会改变,因此也请使用 mouseMoved() 方法。 在 mouseExited() 上重置光标。
同样,我还没有尝试过,但应该可以。
PS:别忘了提交雷达 ;)
我已通过子类化 NSWindow
并将 canBecomeKeyWindow
重写为 return 来解决此问题 YES
:
#import "MyWindow.h"
@implementation MyWindow
- (BOOL)canBecomeKeyWindow {
return YES;
}
@end
在这种情况下不更新调整大小游标看起来像 Apple 错误。文档说明 "The value of canBecomeKeyWindow
property is YES
if the window has a title bar or a resize bar, or NO
otherwise.",因此我预计 canBecomeKeyWindow
将 return YES
用于可调整大小 window。但事实并非如此。
UPD:在 10.10.5 检查。希望您在 10.11 上会有相同的行为。