Swift 中的 IBOutlet 和 IBAction

2024-03-12

我连接了一个IBOutlet and IBAction到我的按钮变量从界面生成器到我的视图控制器。如何在 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并创建一个动作(IBAction)使用 ctrl-drag,您可以创建一个在 Swift 中如下所示的方法(如果它没有参数):

@IBAction func buttonAction() {}

在 Objective-C 中,同样的事情看起来像这样:

- (IBAction)buttonAction {}

所以这意味着@IBAction func OK(sender: UIButton){}是一种行动方法。

如果您想了解发件人参数,我建议this https://stackoverflow.com/questions/29174015/when-do-we-need-button-to-send-argument-in-swift所以帖子。

Edit:

对于你想做的事,我创建了一个IBOutlet and an IBAction,这样我就可以用outlet变量改变它的属性,并用IBAction,就像上面显示的那样:

@IBOutlet var OK: UIButton!
@IBAction func OK(sender: UIButton){} 

例如,如果我想隐藏按钮,我会将这段代码放在viewDidLoad

OK.hidden = true

该代码中的 OK 用于输出变量,如果我想在按下按钮时将“You Pressed me”打印到控制台,我将使用以下代码:

@IBAction func OK(sender: UIButton){
  println("You pressed me")
}

上面我使用该操作将“You Pressed me”打印到控制台。

有几点需要注意:

当 Swift 2.0 发布时println将被更改为print。另外,对于你的行动和出口,我建议给它们不同的名称,以便更容易区分两者,如下所示:

@IBOutlet var okOutlet: UIButton!
@IBAction func okAction(sender: UIButton){} 

除此之外,在命名变量、常量、函数等时应该使用驼峰式大小写。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 中的 IBOutlet 和 IBAction 的相关文章

随机推荐