gpt4 book ai didi

macos - 触摸栏 - 如何将默认文本字段项目与自定义项目结合起来

转载 作者:行者123 更新时间:2023-12-03 17:09:50 26 4
gpt4 key购买 nike

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

enter image description here

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

这是主要的 makeTouchBar,我尝试在其中添加带有项目标识符 .candidateList 的建议,但没有成功:

extension ViewController: NSTouchBarDelegate  {
override func makeTouchBar() -> NSTouchBar? {

let touchBar = NSTouchBar()

touchBar.delegate = self

touchBar.customizationIdentifier = .myBar

touchBar.defaultItemIdentifiers = [.itemId1,
.flexibleSpace,
.itemId2,
.itemId3,
.flexibleSpace,
.candidateList]

touchBar.customizationAllowedItemIdentifiers = [.itemId1]

return touchBar
}
}

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

最佳答案

简单。只需在自定义 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
}

关于macos - 触摸栏 - 如何将默认文本字段项目与自定义项目结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40515787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com