Swift Nsmenu物品是灰色的

发布于 2025-02-04 20:39:21 字数 594 浏览 2 评论 0原文

我有一个带有菜单项的菜单。问题是我的菜单项全部是灰色或不启用的

public override init() {
  super.init()

  let menu = NSMenuItem(title: "Debug", action: nil, keyEquivalent: "")
  menu.submenu = NSMenu(title: "Debug")
  menu.submenu?.addItem(withTitle: "Load saved data", action: #selector(loadDataFromFile(_:)), keyEquivalent: "");
  menu.submenu?.addItem(withTitle: "another item", action: #selector(loadDataFromFile(_:)), keyEquivalent: "")
  menu.isEnabled = true
  
  NSApplication.shared.mainMenu?.addItem(menu)

}

 @objc func loadDataFromFile(_ sender: Any) {
      print("load it")
  }

I have a menu with menu items. The problem is that my menu items are all greyed out or not enabled

public override init() {
  super.init()

  let menu = NSMenuItem(title: "Debug", action: nil, keyEquivalent: "")
  menu.submenu = NSMenu(title: "Debug")
  menu.submenu?.addItem(withTitle: "Load saved data", action: #selector(loadDataFromFile(_:)), keyEquivalent: "");
  menu.submenu?.addItem(withTitle: "another item", action: #selector(loadDataFromFile(_:)), keyEquivalent: "")
  menu.isEnabled = true
  
  NSApplication.shared.mainMenu?.addItem(menu)

}

 @objc func loadDataFromFile(_ sender: Any) {
      print("load it")
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

披肩女神 2025-02-11 20:39:22

为了能够在当前类中调用自定义选择器,您必须将菜单项的target 设置为self

let menu = NSMenuItem(title: "Debug", action: nil, keyEquivalent: "")
menu.submenu = NSMenu(title: "Debug")
let loadItem = NSMenuItem(title: "Load saved data", action: #selector(loadDataFromFile), keyEquivalent: "")
loadItem.target = self
let anotherItem = NSMenuItem(title: "another item", action: #selector(loadDataFromFile), keyEquivalent: "")
anotherItem.target = self
menu.submenu?.addItem(loadItem)
menu.submenu?.addItem(anotherItem)
menu.isEnabled = true

To be able to call a custom selector in the current class you have to set the target of the menu item to self

let menu = NSMenuItem(title: "Debug", action: nil, keyEquivalent: "")
menu.submenu = NSMenu(title: "Debug")
let loadItem = NSMenuItem(title: "Load saved data", action: #selector(loadDataFromFile), keyEquivalent: "")
loadItem.target = self
let anotherItem = NSMenuItem(title: "another item", action: #selector(loadDataFromFile), keyEquivalent: "")
anotherItem.target = self
menu.submenu?.addItem(loadItem)
menu.submenu?.addItem(anotherItem)
menu.isEnabled = true
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文