Я хочу программно установить отмеченный текст, и поскольку iOS5 UITextView и UITextField соответствуют UITextInput, это должно быть возможно, но по какой-то причине я всегда получаю selectedText
равным нулю. :(
Что мне здесь не хватает?
Это то, что я безуспешно пробовал:
(Пока текстовое представление - firstResponder)
1.- Когда текстовое представление содержит нет текста:
текст: "", selectedRange: {0,0}, MarkedText: nil.
[_textView setMarkedText:@"月" selectedRange:NSMakeRange(0, 1)];
Результат: текст: "", selectedRange: {0,0}, MarkedText : nil. (Ничего не изменилось)
2.- Когда текстовое представление содержит текст + некоторый отмеченный текст:
текст: "AAA", selectedRange = {0,3}, отмеченный текст в конце: "太陽" затем делаю:
[_textView setMarkedText:@"地" selectedRange:NSMakeRange(0,3)];
Результат: текст: "AAA", selectedRange: {0,3}, MarkedText: nil; (отмеченный текст стал нулевым)
В обоих случаях это похоже на setMarkedText: selectedRange:
будет устанавливать текущий отмеченный текст (если есть) на ноль.
Любая помощь будет очень признательна:)
Так как t Концепция помеченного текста кажется неясной, вот объяснение:
В языках многоэтапного ввода (например, Японский), вы можете ввести обычный текст (например, английский) или текст с пометкой (например, японский).
Здесь я написал обычный текст: обычный текст
затем я написал помеченный текст つ
, а затем я написал помеченный текст き
так что это было добавлено становится つ き
.
Отмеченный текст (текст в синем поле) представляет собой переходный или промежуточный этап ввода, поскольку он может превратиться в другие символы / слова, называемые кандидатами. Кандидаты показаны в большом квадрате.
Этот снимок экрана был сделан при использовании клавиатуры Bluetooth в iPad, но вы получите аналогичные результаты при использовании программной клавиатуры, например, при написании на японском языке.
Перед записью つ
текстовое представление было:
textView.text : "regular text"
textView.selectedRange : {12,0}
textView.markedText:nil
Затем я написал つ
, а текстовое представление стало:
textView.text : "regular textつ"
textView.selectedRange : {13,0}
textView.markedText: "つ"
Затем я написал き
и текстовое представление стало:
textView.text : "regular textつき"
textView.selectedRange : {14,0}
textView.markedText: "つき"
Текущее состояние текстового представления.
Я хочу иметь возможность устанавливать отмеченный текст программно :)
Возможно ли это? - Согласно документам UITextInput это так.