繁体   English   中英

如何仅使用界面生成器将UIButton连接到动作

[英]How to connect UIButton to action using only interface builder

目前,我正在使用以下代码为键盘设置按钮:

func setupButtons() {
    for subview in self.view.subviews {
        if subview.isKindOfClass(UIButton) {
            setupButton(subview as! UIButton)
        }
    }
}

func setupButton(btn: UIButton) {
    btn.addTarget(self, action: #selector(KeyboardViewController.keyPressed(_:)), forControlEvents: .TouchUpInside)
}

但是,无论如何,我可以跳过此操作,也可以跳过布局生成器中的所有目标,以便节省在每个键盘视图上的按钮之间循环的时间吗?

当然,有两种方法可以通过插座和操作将对象连接到Interface Builder。

class ViewController: UIViewController {

    @IBOutlet weak var doStuffButton: UIButton!

    @IBAction func doStuff(sender: UIButton) {
        //do stuff
    }
}

添加该代码后,在界面生成器中查找并单击此类的视图控制器。

单击connections inspector

在出口下,您现在将看到doStuffButton ,但是在其右侧的圆圈上,按下Control键并用鼠标单击,然后将其拖动到要连接并释放的按钮上。 启用操作不需要设置插座。 我也想向您展示。

在同一窗格中,您还将看到收到的操作和doStuff:方法。 以相同的方式单击并拖动,然后释放按钮。 选择您要处理此操作的事件类型(内部正常处理)。

一旦您都迷上了,它应该看起来像这样:

在此处输入图片说明

如何执行此操作还有许多其他变体,但是我认为这可以帮助您快速入门。

如果您想问如何在不编写任何代码的情况下执行此操作,只需进入Xcode的助手编辑器视图,然后按住Ctrl并将其从按钮拖动到控制器类文件。 然后,当弹出窗口显示时,将输出更改为动作并为其指定方法名称。 这将为您创建IBAction方法。

但是实际上,您现在使用for循环的方式要好得多。 特别是如果您有许多按钮。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM