【发布时间】:2016-08-03 19:30:43
【问题描述】:
我在视图控制器中有一个 NSButton,当单击它时,它应该调用另一个类的实例中的方法(我在视图控制器中有该实例)。但是,永远不会调用 action 方法。
我的代码如下(简短而简单)。请问有人能解释这是为什么吗?
使用按钮查看控制器类:
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
let b:NSButton = NSButton(frame: NSRect(x: 150, y: 200, width: 30, height: 30))
self.view.addSubview(b)
let g = Global()
b.target = g
b.action = #selector(g.s)
}
}
我创建了一个名为“全局”的类,然后按钮应在其中调用一个方法:
class Global:NSObject {
override init() {
super.init()
}
@objc dynamic func s() {
Swift.print("S ran")
}
}
谢谢
更新:为了便于复制,我创建了一个 GitHub 存储库,以最简单的形式显示问题 here。
【问题讨论】:
标签: swift macos selector nsbutton