macOS窗口是否具有集成标题栏和工具栏?

65
在macOS中,我如何使用Xcode和/或Interface Builder创建一个具有“集成标题栏和工具栏”的窗口?
这是在OS X 10.10 Yosemite中添加到应用程序(如Safari和日历)的“粗标题栏”类型的窗口。统一的标题栏和工具栏加上其他小工具。
引用: macOS人机界面指南:标题栏和工具栏 当包括工具栏时,它位于标题栏下方(或与标题栏集成),包括控件-称为工具栏项,提供快速访问频繁使用的命令和功能。 Integrated title bar and toolbar 集成的标题栏和工具栏

我添加了一个编辑,从HIG中添加引用和图片,并将这个问题现代化,以适应Yosemite时代。如果有需要回滚的地方,请告诉我! - pkamb
3个回答

94
  1. 创建一个标准工具栏。
  2. 窗口加载时,将titleVisibility设置为隐藏:

  3. // Objective-C
    window.titleVisibility = NSWindowTitleHidden;
    
    // Swift
    window?.titleVisibility = .hidden
    

4
我可以确认这确实实现了期望的行为。完整示例请参见VisualEffectPlayground中的“样本地图”演示(https://developer.apple.com/library/prerelease/mac/samplecode/VisualEffectPlayground/Introduction/Intro.html#//apple_ref/doc/uid/TP40014632)。 - Oliver Cooper
2
对于未来的开发者,请将以下代码放入您的 WindowController 中:window.titleVisibility = NSWindowTitleVisibility.Hidden - qaisjp
2
@GrahamPerrin 用户没有覆盖权限。可能可以通过黑客/打补丁Cocoa来禁用titleVisibility属性。 - Kornel
1
很好。对于那些像我一样不知道如何添加工具栏的人来说,您需要在 Interface Builder 中将工具栏拖放到 NSWindow 上。 - Cristi Băluță
3
此外,确保每个项目内的 NSButton 样式在属性检查器中为“Texture Rounded”:这种样式会以浅灰色高亮显示,与 Safari 中的按钮一样。相反,默认样式“Push”会以蓝色或石墨色(取决于系统偏好设置/常规)高亮显示。 - Nicolas Miari
显示剩余10条评论

13

从Xcode 10开始,您可以在窗口的“属性检查器”下,在窗口标题下方打开“隐藏标题”复选框来在XIB或storyboard中执行此操作。

xib演示

还请注意,应使用“Textured Rounded”样式的工具栏按钮。


12

在你的窗口控制器的windowDidLoad()方法中:

window?.titleVisibility = .hidden

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接