我正在创建一个允许用户输入日期的文本字段,并且我想显示所需的格式:mm-dd-yyyy
. 当他们键入时,它应该用他们键入的数字替换格式。例如,如果他们输入125
,它应该看起来像:12-5d-yyyy
。
我已经能够得到这个工作(使用textField:shouldChangeCharactersInRange:replacementString:
方法)。但是有2个问题:
当我更新文本字段以显示格式以及他们输入的内容(通过直接设置
textField.text
)时,光标会移动到插入文本的末尾。例如,它目前看起来像:(光标12-30-yyyy|
在哪里|
),但我希望它看起来像12-30-|yyyy
. 那么如何将光标放在他们最后一次输入的位置呢?如果用户按退格键或删除,我无法确定删除发生的位置。我知道确定他们按下退格键或删除的唯一方法是这样的:(
BOOL thisIsBackspace = ([string length] == 0)
其中 string 是 的值replacementString:
。但这并没有告诉我它发生在哪里。 那么我如何确定 UITextField 中的删除发生在哪里?