在将UIControl
从故事板链接到代码时,是否可以更改自定义IBAction
触发的默认事件?
让我解释一下:
如果在情节提要中添加UIButton
并将其Alt-拖动到代码中,则会弹出一个弹出窗口,您可以在其中定义所需的连接类型为IBOutlet
或在这种情况下为{{ 1}}。
如果您选择IBAction
,则所选的默认事件为IBAction
,这非常好,因为您只想知道何时按下按钮就大了!
但是,如果您通过自定义Touch Up Inside
或事件UIView/UIControl
的子类来执行此操作,则发送的默认事件始终为UIButton
所以这是我的问题:是否可以更改自定义UI元素的默认行为?
答案 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拖动,但是您可能会发现它更容易/更快。