如何禁用NSWindow透明标题栏上的默认光标?

时间:2018-09-06 14:38:21

标签: macos user-interface cocoa

我使用以下方法创建带有透明标题的NSWindow:

  • setTitleVisibility:NSWindowTitleHidden
  • setTitlebarAppearsTransparent:YES
  • setMovable:否

,样式包括NSWindowStyleMaskFullSizeContentView。窗口变为无标题,缩放和全屏模式效果很好。一切正常,除了鼠标光标。当我将其移动到标题栏(如果可见)所在的区域时,它将成为默认样式。

是否可以覆盖此行为,以便鼠标光标形状由窗口内容(使用addCursorRect)定义?

1 个答案:

答案 0 :(得分:0)

透明标题栏和根本没有标题栏之间是有区别的。听起来好像您有一个带有透明标题栏的窗口,但是您想要一个没有标题栏的窗口。

如果您根本不需要标题栏,则需要确保窗口的styleMask没有NSWindowStyleMaskTitled

如果在xib或情节提要中创建窗口,则可以关闭窗口的“属性”检查器中的“标题栏”复选框。

如果您使用代码创建窗口,则可以使用styleMask初始化程序设置initWithContentRect:styleMask:backing:defer:,也可以在创建后设置styleMask

例如,此行将从现有窗口的NSWindowStyleMaskTitled中删除styleMask位:

self.window.styleMask &= ~NSWindowSytleMaskTitled;