macOS NSTabViewController居中的标签图标

时间:2018-07-06 11:24:01

标签: swift macos nstabviewcontroller

我有一个已创建的macOS应用。而且我有一个使用窗口和情节提要构建的“首选项”窗口,其中的表格工具栏样式为NSTabViewController。

尽管如此,我仍无法覆盖选项卡图标的位置-它们默认位于窗口的左侧。 有可能吗?

enter image description here

2 个答案:

答案 0 :(得分:3)

子类NSTabViewController并覆盖func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier]。在两侧添加一个flexibleSpace工具栏项。

答案 1 :(得分:1)

遵循 Willeke 的提示,我在NSTabViewController子类中提出了此替代方法:

override func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {

    super.toolbarDefaultItemIdentifiers(toolbar)

    var arr = Array<NSToolbarItem.Identifier>()
    for item in self.tabViewItems {
        if let identifier = item.identifier {
            arr.append(NSToolbarItem.Identifier.init(identifier as! String))
        }
    }

    //insert flexible spaces at first and last index
    arr.insert(NSToolbarItem.Identifier.flexibleSpace, at: 0)
    arr.append(NSToolbarItem.Identifier.flexibleSpace)

    return arr
}