使用外部类方法作为 NSMenuItem 的操作?

问题描述

第一次发帖者和非常新手的 swift 用户。我遇到了使用外部类方法作为 NSMenuItem 操作的问题。我已经设置了一个名为 NewDocument 的新类,其中包含方法 newDoc。

我想将此方法用作 NSMenuItem 的操作。但是,当我使用它时,菜单项是灰色的?即使我将目标设置为 NewDocument,它仍然不起作用。

非常感谢任何指导或帮助。

//Creating Instance of class
let createNewDocument = NewDocument()

//Use selector to declare method as action
let menuItem = NSMenuItem(title: "New",action: #selector(createNewDocument.newDoc),keyEquivalent: "")

//Set target to new instance of class
menuItem.target = createNewDocument

NewDocument 类

class NewDocument: NSObject {
    @objc func newDoc() {
        // new document logic
    }
}

Example of output

解决方法

  • 目标是类的实例 - createNewDocument
  • 选择器是类型+方法——#selector(NewDocument.newDoc)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...