任何人都可以帮我解决这个问题:我需要实现UITextField
输入数字。此数字应始终为十进制格式,有 4 位,例如 12.3456 或 12.3400。所以我创建NSNumberFormatter
了一个帮助我处理小数位的东西。
我将UITextField
值设置为
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
方法。我处理输入,使用格式化程序,最后调用[textField setText: myFormattedValue];
这工作正常,但这个调用也将光标移动到我的字段的末尾。这是不想要的。例如,我的字段中有 12.3400,光标位于开头,用户键入数字 1。结果值为 112.3400,但光标在末尾移动。我想在用户期望时以光标结束(就在最近添加的数字 1 之后)。有一些关于设置光标的主题,TextView
但这是UITextField
. 我还尝试捕获selectedTextRange
该字段,它可以正确保存光标位置,但在setText
方法调用之后,它会自动更改并且原点UITextRange
丢失(更改为当前)。希望我的解释很清楚。
请在这件事上给予我帮助。非常感谢您。
编辑:最后,我决定在整个编辑后将功能切换为更改格式,并且效果很好。我通过添加一个选择器来完成它forControlEvents:UIControlEventEditingDidEnd
。