Ios 更改从情节提要链接到代码时iAction中使用的默认事件
将Ios 更改从情节提要链接到代码时iAction中使用的默认事件,ios,xcode,storyboard,interface-builder,ibaction,Ios,Xcode,Storyboard,Interface Builder,Ibaction,将iAction从故事板链接到代码时,是否可以更改自定义UIControl触发的默认事件 让我解释一下: 如果在情节提要中添加ui按钮,并将其拖动到代码中,则会出现一个弹出窗口,您可以在其中将所需的连接类型定义为IBOutlet,或者在本例中定义为IBAction 如果您选择了iAction,则选择的默认事件是Touch Up Inside,这非常重要,因为您只想知道按钮何时按下的可能性很大 但是如果您从自定义ui视图/UIControl或ui按钮的子类事件中执行此操作,则发送的默认事件始终是
iAction
从故事板链接到代码时,是否可以更改自定义UIControl
触发的默认事件
让我解释一下:
如果在情节提要中添加ui按钮
,并将其拖动到代码中,则会出现一个弹出窗口,您可以在其中将所需的连接类型定义为IBOutlet
,或者在本例中定义为IBAction
如果您选择了iAction
,则选择的默认事件是Touch Up Inside
,这非常重要,因为您只想知道按钮何时按下的可能性很大
但是如果您从自定义ui视图/UIControl
或ui按钮的子类事件中执行此操作,则发送的默认事件始终是值已更改
因此,我的问题是:是否可以更改自定义UI元素的默认行为?您可以为按钮创建一个出口
@IBOutlet var myButton: UIButton!
然后以编程方式添加您的操作:
myButton.addTarget(self, action: #selector(myButtonActionMethod(sender:)), for: .touchUpInside)
以及
然后你会有更多的控制权。这就是你的意思吗?我认为你不能更改默认值,但是
如果您不知道,您可以右键单击UI元素,然后从弹出菜单中单击并拖动要连接的事件
另外,如果您的代码中已经有了@IBAction
,如:
@IBAction func myFunc(_ sender: Any) {
// code here
}
您可以右键单击UI元素并从所需事件拖动到该功能块以建立连接。代码块将突出显示,让您知道可以释放鼠标按钮
不完全是“定制”ctrl-drag,但您可能会发现它更容易/更快。确实有很多替代方案,但我真的在寻找一种解决方案,我仍然可以使用Xcode的alt-drag功能,而不必打开下拉菜单。啊,我明白您的意思了谢谢@DonMag,实际上,我在连接时也使用了这个弹出菜单,但由于您不知道自定义元素支持哪些事件,除非您自己构建了它或检查了代码,我发现它对其他可能在我之后处理该项目的开发人员并不友好。一个很好的选择,否则虽然!是的,我明白你的意思。向控制上下文菜单的@IBDesignable
类添加类似于generatesEvents[]
属性的内容是对Xcode/IB的一个很好的补充。
@IBAction func myFunc(_ sender: Any) {
// code here
}