【问题标题】:Add NSTitlebarAccessoryViewController to the left of the titlebar/toolbar将 NSTitlebarAccessoryViewController 添加到标题栏/工具栏的左侧
【发布时间】:2017-10-22 18:33:23
【问题描述】:

我已经实现了一个统一的标题栏/工具栏,现在想在栏上添加两个按钮。它们需要位于最左侧,就在红绿灯按钮的右侧。我正在创建一个与系统偏好设置非常相似的工具栏。

我查看了用于添加NSTitlebarAccessoryViewController 的API,layoutAttribute 的唯一有效属性是NSLayoutAttributeRight(将视图添加到工具栏的最右侧)和NSLayoutAttributeBottom,它实际上将视图置于统一的工具栏在自己的工具栏中。

这两个选项我都不想要,那么如何在统一工具栏的最左侧添加一堆按钮?

【问题讨论】:

  • 你有没有想过这个问题?工具栏是否与 titlebaracessoryviewcontroller 兼容?

标签: macos cocoa nstoolbar nstitlebaraccessoryviewcontroller


【解决方案1】:

归档这个实际上要容易得多:

只需使用 Interface Builder 将工具栏添加到您的窗口,并将标题可见性设置为隐藏:

[window setTitleVisibility:NSWindowTitleHidden];

【讨论】:

  • 对,但这只会使红绿灯按钮居中并隐藏标题文本。
【解决方案2】:

这现在可以在 OS X 10.11 中实现。引用头文件:

对于在 Mac OS 10.11 或更高版本上链接的应用程序,还支持NSLayoutAttributeLeft;将项目放在窗口的左侧(靠近关闭/最小化/最大化按钮的右侧)。

【讨论】:

  • 我认为这是一个很酷的 UI 元素,但仅在 10.11 上??为什么不至少在 10.10 上出现...
【解决方案3】:

您可以在 GitHub 上使用 WAYAppStoreWindow 来执行此操作。我创建了一个 WAYWindow 子项目的 fork 以将文档标题垂直居中,因为这不受支持。

【讨论】: