как переместить курсор в UITextField после установки его значения

кто-нибудь может помочь мне с этим: мне нужно реализовать 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.

27
задан Sujay 24 June 2015 в 13:40
поделиться