问题描述
第一次发帖者和非常新手的 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
}
}
解决方法
- 目标是类的实例 -
createNewDocument
- 选择器是类型+方法——
#selector(NewDocument.newDoc)