我正在尝试在我的应用程序中添加NSToolbar之后的“第二行”,它仍然是标题栏的一部分。例如,Mail在NSToolbar下面有一个细的灰色分隔线,下面有一些额外的项目。非常具体地,当窗口进入全屏模式时,当第二个“行”在系统菜单栏下滑下时,该第二个“行”保持附着在标题栏上。 Xcode也有类似的故事。
我尝试将我的NSWindow设置为纹理,并将我的第二行控件直接放在窗口的内容视图中。虽然这在窗口模式下看起来很正常,但当它以全屏模式向下滑动时,这些控件当然不会显示在工具栏上。那么我怎样才能实现与Mail和Xcode相同的行为呢?我查看了很多工具栏自定义代码,但没有一个真正涵盖这个特定情况。
答案 0 :(得分:3)
我需要做的是在工具栏下方的视图上调用[NSToolbar setFullScreenAccessoryView:]
。这导致了我的目标。有关此方法,请参阅NSToolbar documentation。
答案 1 :(得分:1)
fullScreenAccessoryView
在macOS 10.10中已弃用
要在最新版本的macOS中执行此操作,请使用addTitlebarAccessoryViewController
上的NSWindow
方法并传入NSTitlebarAccessoryViewController
的子类。
例如:
NSTitlebarAccessoryViewController *accessoryViewController = [[NSStoryboard storyboardWithName:@"Main" bundle:nil] instantiateControllerWithIdentifier:@"AccessoryViewController"];
[self.mainWindowController.window addTitlebarAccessoryViewController:accessoryViewController];
答案 2 :(得分:0)
第一个是普通工具栏。对于第二个工具栏,您可以创建所需高度的单独视图,并将其添加到主着陆窗口中。