隐藏NSWindow的titleBar

新建一个macOS应用项目,编译运行后默认出现的界面是如下图所示的样子:

默认效果

有时候我们需要去掉titleBar,类似QQ登录界面那种,此时我们可以在继承自NSWindowController的自定义类的-windowDidLoad方法中通过下面的代码实现效果:

- (void)windowDidLoad {
  [super windowDidLoad];
  [self.window setTitleVisibility:NSWindowTitleHidden];
  [self.window setTitlebarAppearsTransparent:YES];
  [self.window setStyleMask:NSWindowStyleMaskFullSizeContentView|NSWindowStyleMaskTitled|NSWindowStyleMaskClosable|NSWindowStyleMaskMiniaturizable|NSWindowStyleMaskResizable];
}

我们也可以直接在IB中进行设置,打开Storyboard并选中NSWindowController中的NSWindow,展开右侧工具栏并切换至属性面板,勾选上Full Size Content View选项即可。如果在IB中进行设置,则无需在代码中调用-setStyleMask:方法。

最终效果如下图所示: