我有一个视图,它具有多个动态创建的UITextfields和UISegmented控件(但对于此问题的目的,还可能有UIButtons,UISwitches,UISliders或从UIControl继承的其他任何东西)。无论控件属于哪个子类,只要用户完成与任何控件的交互,我就想要执行一个动作。从查看其他问题,我想我想在创建后使用addTarget:action:forControlEvents:
将观察者添加到每个控件中,但我不知道要查找哪个事件。我已经尝试了所有列入in the Apple Docs here的那些看起来很相关但不是每次都会触发的列表。我在VBA中寻找类似.LostFocus
的东西,但我似乎无法找到那是什么 - 我知道有一个becomeFirstResponder
方法可以使控件处于活动状态,但我找不到像“lostFirstResponder”事件。什么是处理用户与UIControl交互结束的事件?
我想我可以使用isKindOfClass
来说明它是什么样的控制,并据此设置我的事件,但这看起来有点草率,我觉得应该有一个更直接的方式来做到这一点。我也可能建立了一个UITapGestureRecognizer并以这种方式建立了一些东西,但这仍然是一种解决方法,而不是它应该完成的方式。
例如,用户可以与控件“A”进行交互。如果用户现在开始与第二个控件“B”进行交互,那么我将把它定义为A“失去焦点”。 – GeneralMike