如何找出UITextField结束编辑的原因?

时间:2017-01-30 14:13:54

标签: ios swift uitextfield uitextfielddelegate

我有UITextField可以设置为编辑模式。

通常,通过在键盘上输入“完成”来结束编辑。 这会调用textFieldDidEndEditing(_ textField: UITextField),在那里发生一些家务。

但是,在极少数情况下,会显示一条警告,表明用户输入了地理围栏。如果文本字段处于编辑模式,则它会重新响应第一响应者状态,因为警报视图成为第一响应者,并且还调用textFieldDidEndEditing(_ textField: UITextField)。取消警报后,将恢复文本字段的第一个响应者状态。

问题:
我必须区分这两种情况:
如果文本字段由于键盘上的“完成”而结束编辑,则应该进行内务管理 如果由于显示警报而结束编辑,则不得进行内务处理。

那么,我怎样才能区分这两种情况呢?

我尝试使用委托功能

textFieldDidEndEditing(_ textField: UITextField, reason: UITextFieldDidEndEditingReason)

其中reason可能是cancelledcommitted,两种情况都是committed

1 个答案:

答案 0 :(得分:2)

您可以使用import numpy as np import pymc3 as pm with pm.Model() as model: dist = pm.Mixture('dist', np.array([0.25, 0.75]), [pm.Uniform.dist(-0.15, -0.05), pm.Uniform.dist(0., 0.05)]) N = 10000 samples = dist.random(size=10000) 并假设您可以识别地理围栏已被触发,返回false,这将使textField保持编辑模式,否则返回true,并且可以开始管理

textFieldShouldEndEditing