我正在尝试创建像Photos.app这样的macOS应用。 NSWindowController
有一个带有分段控件的工具栏。当您点按分段控件时,它会更改NSViewController
中的NSWindowController
。
到目前为止我所拥有的是NSWindowController
NSViewController
。我已经将NSWindowController
子类化了,其中我有一个方法,只要用户点击分段控件就会调用该方法。
基本上,无论单击哪个段,它都会实例化所需的视图控制器并将其设置为NSWindowController
的{{1}}属性。
这是正确的做法吗?
此外,我想,contentViewController
应该具有可以切换到延迟加载的每个NSWindowController
的属性(当用户点击它们时加载它们并且它们被保持在被重复使用以防止重新初始化。)
代码:
NSViewController
我是macOS开发的新手,但是,我已经做了很长一段时间的iOS。如果有更好的方法,我想了解它。感谢!!!
答案 0 :(得分:2)
要将标签/分段控件移动到标题栏,您需要:
隐藏标题:
class TopLevelWindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
if let window = window {
// reminder like style
// window.titlebarAppearsTransparent = true
window.titleVisibility = .hidden
// window.styleMask.insert(.fullSizeContentView)
}
}
}
现在,工具栏将合并到顶部栏位置。