кто-нибудь может помочь мне с этим: мне нужно реализовать UITextField
для ввода номера. Это число всегда должно быть в десятичном формате с 4 знаками, например. 12.3456 или 12.3400.
Поэтому я создал NSNumberFormatter
, который помогает мне с десятичными разрядами.
Я устанавливаю значение UITextField
в
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replaceString:(NSString *)string
метод.
Я обрабатываю ввод, использую средство форматирования и, наконец, вызываю [textField setText: myFormattedValue];
Это работает нормально, но этот вызов также перемещает курсор в конец моего поля. Это нежелательно. Например. У меня в поле 12.3400 и курсор находится в самом начале и пользователь вводит номер 1. Значение результата 112.3400 но курсор перемещается в конец. Я хочу закончить курсором, когда пользователь ожидает (сразу после недавно добавленного числа 1). Есть несколько тем о настройке курсора в TextView
, но это UITextField
. Я также пытался поймать selectedTextRange
поля, которое правильно сохраняет позицию курсора, но после вызова метода setText
это автоматически изменяется, и источник UITextRange
теряется ( изменен на текущий). надеюсь, мое объяснение понятно.
Пожалуйста, помогите мне с этим.большое спасибо.
РЕДАКТИРОВАТЬ: Наконец, я решил переключить функциональность на изменение формата после полного редактирования и работает достаточно хорошо. Я сделал это, добавив селектор forControlEvents:UIControlEventEditingDidEnd
.