Я обнаружил одну вещь.Если я установил да на функцию
- textField:shouldChangeCharactersInRange:replacementString:
Курсор останется на том же месте, которое я печатаю, например ("|" = курсор)
"|" => Empty , type a
"a|" => type b
"ab|" => change cursor
"a|b" => type c
"ac|b" => type d
"acd|b" => change cursor
"ac|db" => type backspace
"a|db" => type backspace again
"|db" => *result*
Но, если мне нужно изменитьтекст, как положить "-"
в предпоследнем символе, я делаю логику и устанавливаю текст с помощью:
[textField setText:newText];
Но пример выше будет таким образом:
"|" => Empty , type a
"a|" => type b (put character "-" automatic)
"a-b|" => user change cursor
"a|-b" => type c
"ac-b|" => type d ## the cursor is in end ##
"acb-d|" => change cursor ## "d" is in wrong place, the user have to
## change cursor to reproduce the result above
"ac|b-d" => type backspace
"ab-d|" => type backspace again ## the cursor is in end again ##
"a-b|" => *result* ## I want delete "a" but it delete "d"
Как мне установить курсор на результат такой же "|d-b"
как в первом примере?Или лучше вопрос: Как изменить текст и курсор в UITextField?