NSTouchBar - 如何将默认文本字段项与自定义项组合

时间:2016-11-09 20:49:16

标签: macos cocoa nstextview nstouchbar

我正在尝试将自定义触控条项目与触摸栏中的自动文字建议结合在一起,同时编辑文本字段。

enter image description here

目前我在自定义NSTextView类中重写makeTouchBar,如果我不这样做,将为textView创建默认触摸条。

这是主要的makeTouchBar,我尝试使用项目标识符object.somePromise().then(function(param){ var data = someFunction(); return data; }).then(function(param){ //param holds the value of data returned by the previous then console.log(param); }); 添加建议,但没有运气:

.candidateList

有人可以提供一个简单的示例,说明如何将此单词建议项添加到自定义触控栏吗?

1 个答案:

答案 0 :(得分:1)

易。只需在自定义NSTextView类中调用super:

override func makeTouchBar() -> NSTouchBar {
    var touchBar = super.makeTouchBar()
    touchBar.delegate = self
    var defaultIdentifiers = [Any](arrayLiteral:touchBar.defaultItemIdentifiers)
    defaultIdentifiers.insert("CustomLabel", at: 0)
    touchBar.defaultItemIdentifiers = defaultIdentifiers
    return touchBar
}

override func touchBar(_ touchBar: NSTouchBar, makeItemFor identifier: NSTouchBarItemIdentifier) -> NSTouchBarItem {
    if (identifier == "CustomLabel") {
        var button = NSButton(title: "Custom", target: self, action: nil)
        var item = NSCustomTouchBarItem(identifier: "CustomLabel")
        item.view = button
        item.customizationLabel = "Custom"
        return item
    }
    else {
        return super.touchBar(touchBar, makeItemFor: identifier)
    }
    return nil
}