从情节提要链接到代码时,更改IBAction中使用的默认事件

时间:2019-02-26 10:30:38

标签: ios xcode storyboard interface-builder ibaction

在将UIControl从故事板链接到代码时,是否可以更改自定义IBAction触发的默认事件?

让我解释一下:

如果在情节提要中添加UIButton并将其Alt-拖动到代码中,则会弹出一个弹出窗口,您可以在其中定义所需的连接类型为IBOutlet或在这种情况下为{{ 1}}。

如果您选择IBAction,则所选的默认事件为IBAction,这非常好,因为您只想知道何时按下按钮就大了!

UIButton IBAction

但是,如果您通过自定义Touch Up Inside或事件UIView/UIControl的子类来执行此操作,则发送的默认事件始终为UIButton

Custom UIControl IBAction

所以这是我的问题:是否可以更改自定义UI元素的默认行为?

2 个答案:

答案 0 :(得分:0)

好吧,您可以为按钮创建一个插座

 @IBOutlet var myButton: UIButton!

,然后以编程方式添加您的操作:

myButton.addTarget(self, action: #selector(myButtonActionMethod(sender:)), for: .touchUpInside)

@objc func myButtonActionMethod(sender:UIButton) { 
//do something
}

然后您将有更多的控制权。那是你的意思吗?

答案 1 :(得分:0)

我认为您不能更改默认值,但是...

如果您不知道,则可以右键单击UI元素,然后从弹出菜单中单击并拖动要连接的事件。

此外,如果您的代码中已经包含@IBAction,例如:

@IBAction func myFunc(_ sender: Any) {
    // code here
}

您可以右键单击UI元素,然后从所需的事件拖动到该功能块以进行连接。代码块将突出显示,让您知道您可以释放鼠标按钮。

不太“自定义” ctrl拖动,但是您可能会发现它更容易/更快。