[英]IBOutlet and IBAction in Swift
我将IBOutlet
和IBAction
连接到我的按钮变量,从 Interface Builder 到我的视图控制器。 如何在 Swift 中向按钮添加操作方法? 这段代码似乎不起作用。
@IBOutlet var OK: UIButton!
@IBAction func OK(sender: UIButton){}
我发现的 Objective-C 等效项是:
@interface Controller
{
IBOutlet id textField; // links to TextField UI object
}
- (IBAction)doAction:(id)sender; // e.g. called when button pushed
当您将按钮附加到viewController
并使用 ctrl-drag 创建一个操作 ( IBAction
) 时,您将创建一个在 Swift 中看起来像这样的方法(如果它没有参数):
@IBAction func buttonAction() {}
在 Objective-C 中,同样的事情看起来像这样:
- (IBAction)buttonAction {}
所以这意味着@IBAction func OK(sender: UIButton){}
是一个动作方法。
如果您想了解发件人参数,我会推荐这篇SO 帖子。
对于您想要做的事情,我创建了一个IBOutlet
和一个IBAction
,这样我就可以使用 outlet 变量更改其属性,并使用IBAction
,就像上面显示的那样:
@IBOutlet var OK: UIButton!
@IBAction func OK(sender: UIButton){}
例如,如果我想隐藏按钮,我会将这段代码放在viewDidLoad
OK.hidden = true
该代码中的 OK 用于 outlet 变量,如果我想在按下按钮时将“You press me”打印到控制台,我将使用以下代码:
@IBAction func OK(sender: UIButton){
println("You pressed me")
}
上面我正在使用操作将“你按下了我”打印到控制台。
当 Swift 2.0 发布时, println
将更改为print
。 还有你的行动和出口,我建议给他们不同的名字,以便更容易区分两者,像这样:
@IBOutlet var okOutlet: UIButton!
@IBAction func okAction(sender: UIButton){}
除此之外,在命名变量、常量、函数等时应该使用驼峰式大小写。
以下是您可以遵循的步骤-
对于@IBOutlet
1.在类名之后声明你的接口构建器元素属性
class SomeViewController: UIViewController{
@IBOutlet weak var aTextField : UITextField! ////Your Interface builder Element
2.Hook IB 元素从 Storyboard。
对于@IBAction
1.在你的类中写一个方法(比如SomeViewController
)
@IBAction func anAction(_sender : AnyObject){
}
2.Hook Storyboard 中的方法。
希望它可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.