Xcode和Swift - 没有标题栏但有关闭,最小化和调整大小按钮的窗口

Isa*_*iah 37 cocoa titlebar interface-builder swift osx-yosemite

我目前在Xcode 6,Beta 5中使用Swift.我试图删除标题栏,或标题栏和实际内容之间的任何明显差异.如果我在窗口的"属性"检查器中启用"统一标题和工具栏",则不会发生任何明显的情况.我已经把标题留了下来.
如果没有输入标题,标题栏仍然可以区分,因为边界线和背景与窗口的其余部分不同,将其与实际内容分开.


一个很好的例子是当前的Yosemite,OS X 10.10,Notes应用程序.没有标题栏可见或可区分,只有关闭,最小化和调整大小按钮,如此处所示. Notes窗口的屏幕截图

我已经搜索过并访问了其他帖子,但是没有收获.
中提到的那些完全隐藏标题栏,但我不知道如何手动重新添加关闭,最小化和调整大小按钮正常,这意味着他们将看起来是正确的,没有实际的,偷偷摸摸的图像更换和连接与菜单栏关闭,最小化和调整大小功能.

Ren*_*ong 44

NSFullSizeContentViewWindowMaskOS X 10.10中添加的新窗口样式掩码可以解决问题.

self.window.titleVisibility = NSWindowTitleVisibility.Hidden;
self.window.titlebarAppearsTransparent = YES;
self.window.styleMask |= NSFullSizeContentViewWindowMask;
Run Code Online (Sandbox Code Playgroud)

发行说明

  • @ixany是因为Swift再次以一种向后不兼容的方式改变语言:| NSWindoStyleMask是一个OptionSet; 当前的OptionSet文档是[这里](https://developer.apple.com/reference/swift/optionset),当前的方法似乎是`insert()`方法. (3认同)

Cai*_*Cai 18

对于10.10+,您可以使用以下内容:

window.titlebarAppearsTransparent = true
window.movableByWindowBackground  = true
Run Code Online (Sandbox Code Playgroud)

在约塞米蒂有一个关于窗户外观的官方样本项目.你可能想看看它.


Jay*_*hta 16

对于Swift 3: -

self.window.titleVisibility = .hidden
self.window.titlebarAppearsTransparent = true
self.window.styleMask.insert(.fullSizeContentView)
Run Code Online (Sandbox Code Playgroud)

  • 这似乎成功了一半,我看到边界区域下方有一条线。有谁知道怎么去掉吗? (2认同)

Hos*_*ein 11

你可以使用这些:

override func viewDidAppear() {
    super.viewDidAppear()

    self.view.window?.titlebarAppearsTransparent = true
    self.view.window?.movableByWindowBackground = true
}
Run Code Online (Sandbox Code Playgroud)


And*_*kin 5

2017 年 9 月更新,taget 10.11:

override func viewDidAppear() {
    super.viewDidAppear()

    self.view.window?.titleVisibility = .hidden
    self.view.window?.titlebarAppearsTransparent = true
    self.view.window?.styleMask.insert(.fullSizeContentView)
}
Run Code Online (Sandbox Code Playgroud)


Fan*_*ing 5

如果您使用情节提要,那么它只是检查器栏中的一个简单复选框。

  1. 从故事板选择窗口 在此处输入图片说明

  2. 在检查器窗口中选中“透明标题栏”复选框。

在此处输入图片说明

这是故事板中的外观。在构建和运行应用程序时,它看起来相同。

在此处输入图片说明