为什么我的 NSMenuItem 在有操作时被禁用?



我正在实现一个具有按钮和下拉列表的自定义NSToolbarItem,例如Mail。但是,唯一不起作用的是NSMenuItem被禁用。无论我做什么,我都无法启用它。知道我在这里做错了什么吗?

class DropdownTypeToolbarItem: NSToolbarItem {
private var handler: ((NSNumber) -> Void)?
init(itemIdentifier: NSToolbarItem.Identifier, handler: ((NSNumber) -> Void)?) {
super.init(itemIdentifier: itemIdentifier)
self.handler = handler
let control = NSSegmentedControl(labels: ["Open", ""],
trackingMode: .momentary,
target: self,
action: #selector(open))
let menu = NSMenu(title: "")
menu.addItem(withTitle: "Export", action: #selector(export(_:)), keyEquivalent: "")
control.setMenu(menu, forSegment: 1)
control.setShowsMenuIndicator(true, forSegment: 1)
self.view = control
}
@objc func open() {
print("select open")
self.handler?(0)
}
@objc func export(_ sender: Any) {
print("select export")
self.handler?(1)
}
}

NSToolbarItem 本身不是响应程序链的一部分,当菜单项的targetnil时,响应程序链用于确定是否可以启用菜单项。在这种情况下,您应该将菜单 iem 的target显式设置为工具栏项。

相关内容

  • 没有找到相关文章

最新更新