macOS 10.12.6;Xcode 9.3,故事板
我有一个 NSTabView (tabless),它本身包含两个 NSTabViews。一种是tabless,另一种使用“工具栏”样式。
当我在工具栏可见的情况下启动我的应用程序时,一切都很好:它在工具栏中显示我的选项卡,我可以更改它们等等。一旦我更改到情节提要的另一个分支,工具栏就会消失......当我回来,而不是适当的工具栏,带有按钮和所有这些,我得到一个稍微加宽的栏,其中没有任何内容。
我已经设置了一个示例项目来显示我的问题,其中 - 为了便于切换 - 我让其他两个 tabViewControllers 来显示它们的选项卡(底部/顶部,但这没有区别)。
1)第一次运行(从'toolbar'分支开始): 2)(未显示):切换到'top'分支3)切换回'toolbar'后:
作为诊断帮助,我在 AppController 中创建了一个“displayToolbarStatus”IBAction:
@IBAction func displayToolbarStatus(_ sender: NSMenuItem){
if let window = NSApplication.shared.windows.first {
print(window.toolbar?.isVisible)
}
}
结果如下: 1) optional(true) 2) nil 3) optional(true)
这非常符合事情应该如何工作:工具栏存在并显示,没有工具栏,工具栏存在并显示。当然,只是它不能用作工具栏。(关闭和打开可见性,或尝试使用 window.toolbar?.sizeMode = .regular 强制更改大小没有任何效果,也没有为工具栏项目分配图标;工具栏仍然被压扁并且没有功能按钮。
我没有深入使用 NSToolbar:这是一个已知的解决方法吗?这是 Xcode 9.2 的新功能(毕竟,它认为没有窗口是有效的,所以显然在那个领域有一些问题)?
我真的很想使用 NSTabView 的“工具栏”功能:我该如何进行?