Почему это работает только иногда? (UITextView подать в отставку первый ответчик вопрос) - PullRequest
2 голосов
/ 29 марта 2010

Когда пользователь нажимает кнопку «ОТПРАВИТЬ» (возврат), я хочу, чтобы клавиатура убиралась и выполняла другие действия, например отправку сообщения. Но это работает только ИНОГДА ...

Почему этот код работает только ИНОГДА? Мне нужно, чтобы он работал постоянно, но это не так.

- (void)textViewDidChange:(UITextView *)inTextView {

    NSString *text = myTextView.text;

    if ([text length] > 0 && [text characterAtIndex:[text length] -1] == '\n') {
        myTextView.text = [text substringToIndex:[text length] -1];
        [myTextView resignFirstResponder];
        [self sendMessage];

    }
}

Ответы [ 3 ]

1 голос
/ 29 марта 2010

Он вызывается только если

([text length] > 0 && [text characterAtIndex:[text length] -1] == '\n')

верно. Это всегда так? Возможно, добавьте оператор NSLog снаружи и внутри состояния, чтобы увидеть, действительно ли оно все время верно.

0 голосов
/ 02 января 2012

Этот метод передается в представлении, называемом inTextView, но внутри метода, который вы ссылаетесь на myTextView, и вы не упоминаете, где он был установлен.

Я бы предложил вам изменить все ссылки myTextView на inTextView и посмотреть, решит ли это проблему, поскольку вы, возможно, работаете с UITextView, отличным от myTextView, и видите из-за этого свои проблемы.

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

Проверка на \ n выглядит странно. Зачем ты это делаешь?

...