我正在子类化UIControl
并且由于我想将视图控制器设置为目标,因此我发现了sendAction方法。我真的无法弄清楚这两种方法之间的区别以及它们各自的用法何时更合适。
不同之处在于,sendAction(_:to:for:)
实际上立即调用定义的选择器,而addTarget(_:action:for:)
仅将目标和操作与控件相关联,并且仅在事件发生时调用选择器。
您可以使用sendAction:to:forEvent:
来模拟实际的底层系统调用。 即:模拟用户实际点击UIButton
(UIControl
(并将UIControlEvents
touchUpInside
发送到目标。我个人以前从未使用过它。
addTarget:action:forControlEvents:
映射选择器、UIControlEvent
和目标,以便在以后使用,例如当用户点击UIButton
时。