У меня есть NSTokenFiled
, который проверяет вставленные маркеры через метод делегата -tokenField:shouldAddObjects:atIndex:
. К сожалению, этот метод вызывается только тогда, когда пользователь нажимает символ токенизации. Когда он/она щелкает за пределами элемента управления, нажимает esc или tab, незавершенная строка автоматически преобразуется в токен, не вызывая метод проверки.Удалить символы токенов из NSString
После запроса google я заметил, что проблема известна, и кто-то из stackoverflow предложил переопределить метод делегирования для проверки оставшейся строки.
К сожалению, объект, переданный этому методу, является NSMutableString
с невидимым символом для каждого токена, который уже был вставлен в поле маркера. Наверное, это то, как какао отслеживает, где показывать маркеры.
Мой вопрос: как я могу удалить эти незаконные символы?
До сих пор я попытался это:
NSString *newString = [NSString stringWithUTF8String:[stringWithInvisibleCharcters UTF8String]];
NSString *newString = [stringWithInvisibleCharacters stringByTrimmingCharactersInSet:[NSCharacterSet illegalCharacterSet]];
NSString *newString = [stringWithInvisibleCharacters stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];
без успеха. Я знаю, что последние два будут работать только в том случае, когда символы токенов находятся в начале и в конце, но это мой случай.
Edit:
Если это помогает регистрируя символы с
NSLog(@"%hu",[(NSMutableString *)object characterAtIndex:0]);
возвращается 65532.
Что означают недопустимые символы /? –