Настройка iphone UITextView делегат прерывает автоматическое завершение - PullRequest
1 голос
/ 25 марта 2010

У меня есть UITextField, для которого я хотел бы включить автозаполнение:

[self.textView setAutocorrectionType:UITextAutocorrectionTypeYes];

Это работает нормально, за исключением случаев, когда я даю UITextView делегат. Когда делегат установлен, автозаполнение просто перестает работать. У делегата есть только следующий метод:

- (void)textViewDidChange:(UITextView *)textView
{
 self.textView.text = [self.textView.text stringByReplacingOccurrencesOfString:@"\n" withString:@""];

 int left = LENGTH_MAX -[self.textView.text length];
 self.characterCountLabel.text = [NSString stringWithFormat:@"%i",abs(left)];

}

Кто-нибудь знает, как включить автозаполнение и установить делегат?

Спасибо!
Тристан

Ответы [ 3 ]

0 голосов
/ 01 апреля 2010
NSRange r= [self.textView.text rangeOfString:@"\n"];
if(r.location!=NSNotFound) //must check before replacing new lines right away, otherwise spellcheck gets broken
{
    self.textView.text = [self.textView.text stringByReplacingOccurrencesOfString:@"\n" withString:@""];
}

Проблема была вызвана выполнением чего-то, что потенциально изменяет текст каждый раз, когда он был изменен (то есть вызывается метод замены) Решение состояло в том, чтобы вызывать метод замены только тогда, когда это было необходимо.

0 голосов
/ 11 декабря 2012

Получите это: все, что вам нужно сделать, это удалить UITextViewDelegate из файла вашего интерфейса (.h).

Вы все еще можете установить делегата для textView в кончике.

Странно, верно? Я работал, надеюсь, это решит и твою проблему.

0 голосов
/ 25 марта 2010

Возможно, это нарушает автозаполнение, потому что вы одновременно изменяете текст в UITextView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...