在这个测试应用程序的完整VIEwController. swift下面
//// VIEwController.swift// hjkhjkjh//// Created by iznogoud on 14/05/16.// copyright © 2016 iznogoud. All rights reserved.//import Cocoaclass VIEwController: NSVIEwController { func printSomething() { print("Hello")}overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() let mybuttonRect = CGRect(x: 10,y: 10,wIDth: 100,height: 10) let mybutton = NSbutton(frame: mybuttonRect) vIEw.addSubvIEw(mybutton) mybutton.target = self mybutton.action = Selector(printSomething()) // Do any additional setup after loading the vIEw.}overrIDe var representedobject: AnyObject? { dIDSet { // Update the vIEw,if already loaded. }}}问题在于添加选择器的方式
mybutton.action = Selector(printSomething())
添加选择器的语法有点古怪,你给它一个带有函数名称的字符串,所以在你的情况下你应该写:
mybutton.action = Selector("printSomething")
哪个应该在你的控制台中用Hello来奖励你.
可能因为语法导致了人们的问题,它在Swift 2.2中被更改了,所以现在你写道:
mybutton.action = #selector(VIEwController.printSomething)
代替.这意味着编译器可以帮助您尽早发现这些错误,这是我认为向前迈出的一大步.您可以在Swift 2.2 here的发行说明中阅读更多相关信息
所以…这是你的整个例子:
import Cocoaclass VIEwController: NSVIEwController { func printSomething() { print("Hello") } overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() // Do any additional setup after loading the vIEw. let mybuttonRect = CGRect(x: 10,height: 10) let mybutton = NSbutton(frame: mybuttonRect) vIEw.addSubvIEw(mybutton) mybutton.target = self mybutton.action = #selector(VIEwController.printSomething) } overrIDe var representedobject: AnyObject? { dIDSet { // Update the vIEw,if already loaded. } }}
希望对你有所帮助.
总结以上是内存溢出为你收集整理的如果在swift中按下NSButton,则创建简单的动作全部内容,希望文章能够帮你解决如果在swift中按下NSButton,则创建简单的动作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)