5

我试图在我的应用程序中的 NSToolbar 之后添加一个“第二行”,它仍然是标题栏的一部分。例如,Mail 在 NSToolbar 下方有一条细的灰色分隔线,下面有一些额外的项目。非常具体地说,当窗口进入全屏模式时,第二个“行”在系统菜单栏下向下滑动时保持连接到标题栏。Xcode 也有类似的故事。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我尝试将我的 NSWindow 设置为带纹理的并将我的第二行控件直接放在窗口的内容视图中。虽然这在窗口模式下大部分看起来是正确的,但当它在全屏模式下向下滑动时,这些控件当然不会显示在工具栏上。那么我怎样才能实现与 Mail 和 Xcode 相同的行为呢?我查看了很多工具栏自定义代码,但没有一个真正涵盖这种特定情况。

在此处输入图像描述 在此处输入图像描述

4

3 回答 3

5

fullScreenAccessoryView在 macOS 10.10 中已弃用

为了在最新版本的 macOS 中执行此操作,请使用addTitlebarAccessoryViewController您的方法NSWindow并传入NSTitlebarAccessoryViewController.

例如:

NSTitlebarAccessoryViewController *accessoryViewController = [[NSStoryboard storyboardWithName:@"Main" bundle:nil] instantiateControllerWithIdentifier:@"AccessoryViewController"];
[self.mainWindowController.window addTitlebarAccessoryViewController:accessoryViewController];
于 2017-10-14T03:39:19.420 回答
3

我需要做的是调用[NSToolbar setFullScreenAccessoryView:]工具栏下方的视图。这导致了我的目标行为。有关此方法,请参阅NSToolbar 文档

于 2012-12-07T22:34:46.393 回答
0

第一个是普通工具栏。对于第二个工具栏,您可以创建所需高度的单独视图并将其添加到主着陆窗口中。

于 2012-12-05T03:43:00.760 回答