Macos 使用Swift在Xcode 6中处理NSButton事件
我想为swift中的NSButton设置操作和目标。在以前版本的Xcode中,有setAction和setTarget方法,但这些方法不再包含在Cocoa库中(或者我所能说的没有)。Swift与新库的等价物是什么:Macos 使用Swift在Xcode 6中处理NSButton事件,macos,event-handling,swift,nsbutton,Macos,Event Handling,Swift,Nsbutton,我想为swift中的NSButton设置操作和目标。在以前版本的Xcode中,有setAction和setTarget方法,但这些方法不再包含在Cocoa库中(或者我所能说的没有)。Swift与新库的等价物是什么: NSButton *myButton = [NSButton alloc]; [myButton setTarget:self]; [myButton setAction:@selector(myMethodToCallOnClick:)]; 这与objC中
NSButton *myButton = [NSButton alloc];
[myButton setTarget:self];
[myButton setAction:@selector(myMethodToCallOnClick:)];
这与objC中的情况几乎相同,只是选择器的位置略有不同。如今,在定义选择器时,swift 2.2和LESER之间存在差异 下面的命令指定了“self”上的回调,该回调被假定为@objc accessible的NSObject(myAction函数可能必须标记为@objc,因为选择器现在仍然使用objc运行时) (对于有趣的颜色,很抱歉,stackoverflow没有得到#选择器的东西…认为这是一个评论。) 如果您使用的是swift 2.2或更高版本,则无需使用#If#else#endif,我只想演示一下两者的区别
let button = NSButton()
button.target = self
#if swift (>=2.2)
button.action = #selector(myAction) // now it autocompletes!
#else
button.action = "myAction:" //old way to do it in swift
#endif