我想分享我的经验,以便对他人有所帮助!
我们的应用程序中可能会有文本字段,用于显示特定的字符集。 我们可以通过实施
来过滤用户输入[textField:shouldChangeCharactersInRange:replacementString:][1]
或通过注册UIControlEventEditingChanged
事件
这可能会导致用户使用undo
功能并且应用程序可能因NSRangeException而崩溃的情况。
解决问题的方法是,当我不希望将某些文本/字符添加到文本字段或粘贴到文本字段时,请确保删除undo
操作。
例如,在实现[textField:shouldChangeCharactersInRange:replacementString:]
时,我可能为不允许的字符返回NO。
在我执行之前
[textfield.undoManager removeAllActions];
这将确保用户无法撤消并且应用不会崩溃!