Пользовательская клавиша Backspace - PullRequest
2 голосов
/ 26 марта 2012

Я создал пользовательскую клавиатуру с моими собственными символами Unicode ... Приложение прекрасно работает, но когда я нажимаю клавишу «пробел», оно иногда не будет возвращаться назад, а иногда - и часто после того, как я получаю удалить предыдущий символ с моей клавишей Backspace, кнопки других букв больше не будут печатать нужные символы Юникода ...

Вот код одного из символов Unicode:

textViewString = [[NSString alloc] initWithFormat:@"%@%@", textView.text, char6String];
    [textView setText:textViewString];

Где "char6string" будет просто одним из моих символов Юникода в этом случае "π"

Вот код кнопки возврата:

if ([textView.text length]>0) {
        textView.text = [textView.text substringToIndex:([textView.text length]-1)];
    }

Ответы [ 2 ]

4 голосов
/ 26 марта 2012

Я делаю нечто похожее в одном из своих приложений и не вижу проблем с использованием setText: вместо textView.text =.

NSUInteger length = [self.textField.text length];
if (length>0) {
    [self.textField setText:[text substringToIndex:length-1]];   
}  

Надеюсь, это поможет!

0 голосов
/ 26 марта 2012

Ну, я разобрался с проблемой, и это грязное решение ... по какой-то причине, когда вы трио добавляете любые новые символы юникода, которые появились около 4 месяцев назад, в текстовое поле через код, он добавляет этот символ юникода вместе ссо странным сбоем символа юникода, который не существует, что приводит к тому, что текст не может быть скопирован и добавлено 2 символа ... так что теперь мне нужно определить, была ли нажата кнопка, чтобы добавить символ, если он изменит длину на 1 или 2, и еслиизменяет длину на 2, это новый символ юникода, и мне нужно тут же делать автоудаление, иначе, если оно увеличивается только на единицу, это нормально, и мне ничего не нужно делать!

Мой новый символ добавления в строку textView выглядит так для каждой кнопки:

length1 = [textView.text length];
textView.text = [textView.text stringByAppendingString:char1String];
length2 = [textView.text length];
if (((length2)-(2))==length1) {
    [textView setText:[textView.text substringToIndex:length2-1]];   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...