При вводе текста на китайском языке вы вводите английские символы, а затем выбираете китайские символы, прежде чем выбирать китайские символы, английские символы находятся в выбранном состоянии (-markedRange).
Прежде чем использовать ReactiveCocoa, я могу сделать это следующим образом. :
в обратном вызове события UITextField's UIControlEventEditingChanged
:
const NSUInteger limitLength = 10;
NSString *tobeString = textField.text;
UITextRange *selectedRange = [textField markedTextRange];
BOOL nothingSelected = (selectedRange==nil || selectedRange.isEmpty);
if (nothingSelected) {
if (tobeString.length > addressItemNameLimitLength) {
textField.text = [tobeString substringToIndex:limitLength];
}
}
self.textField.text = textField.text;
Но в MVVM with ReactiveCocoa
я не могу получить ссылку на UITextField
в моем view model
, как я могу одновременно получить marked range
и text
текстового поля?