UITextInput setMarkedText: selectedRange не работает? (Не может быть!)

Я хочу программно установить отмеченный текст, и поскольку 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 это так.

enter image description here

6
задан nacho4d 26 November 2011 в 15:24
поделиться

0 ответов