将标签添加到没有标题栏的窗口

时间:2017-10-20 17:27:54

标签: swift xcode macos tabs

我正在尝试向没有标题栏的窗口添加标签。设置self.titlebarAppearsTransparent = true或禁用标题栏会阻止系统标签,我在对象面板中找不到任何Safari样式标签。

在普通窗口中,您可以通过制作两个窗口并选择Window>来创建标签。合并所有Windows

这可以在Xcode默认的“显示,最小化,缩放”下看到。

Option shown Normal window, tabs can be created

在无边界窗口上,该选项不存在且不在第一响应者中

Option not shown Borderless Window, Tabs are not allowed

在带有标题栏的窗口上显示透明,该选项不存在,并且不在第一响应者中。

Option not shown titlebarAppearsTransparent window, Tabs are not allowed

不使用Merge all Windows,似乎没有内置的Safari样式选项卡视图。内置的选项卡视图使用系统首选项样式选项卡,我试图获取Safari / Finder /系统样式选项卡。我不想使用自定义渲染标签,因为它们不起作用,感觉与系统标签的方式相同。

1 个答案:

答案 0 :(得分:2)

启用窗口选项卡后,只要所有窗口共享相同的tabbingIdentifier,就可以将窗口分组。 AppKit会根据一些上下文检查自动计算此类标识符,但会忽略设置了titlebarAppearsTransparent选项的窗口。 因此,只需设置自己的tabbingIdentifier,您就会很高兴。 附带说明:可以在系统偏好设置> Dock 中设置新创建或打开的文档的用户偏好的制表符行为。

window.styleMask |= NSWindowStyleMaskFullSizeContentView;
window.titlebarAppearsTransparent = YES;
window.tabbingMode = NSWindowTabbingModeAutomatic
window.tabbingIdentifier = @"MyDocumentWindow";