textview не отвечает делегатам iphone

В моем приложении я принудительно показываю / скрываю клавиатуру, делая textview firstresponder и resignfirstresponder, а также устанавливая редактируемые текстовые поля YES и NO соответственно.

Но после скрытия клавиатуры, если я нажимаю на текстовое изображение, клавиатура не отображается. Я устанавливаю делегата textview на себя. И метод делегата срабатывает в первый раз, но не после этого.

РЕДАКТИРОВАТЬ: я использую следующий код, который я пишу для настраиваемого нажатия кнопки и проверки флажков, чтобы проверить, что клавиатура находится в скрытом состоянии или иным образом:

switch(rotationFlag)
{
    case 0:
    {
        [self hideKeyboard];
        rotationFlag = 1;
        break;
    }

    case 1:
    {
        [self showKeyboard];
        rotationFlag = 0;
        break;
    }
}

-(void)hideKeyboard{
[txtVwForPosts setEditable:FALSE];
[txtVwForPosts resignFirstResponder];   
 }

 -(void)showKeyboard{
[txtVwForPosts setEditable:TRUE];
[txtVwForPosts becomeFirstResponder];   
 }

Что я делаю не так?

Кто-нибудь может помочь? Спасибо заранее.


person neha    schedule 27.07.2010    source источник
comment
Я не могу знать, не публикуете ли вы код   -  person vodkhang    schedule 27.07.2010
comment
Пожалуйста, проверьте мой отредактированный вопрос ..   -  person neha    schedule 27.07.2010


Ответы (2)


Я не уверен, что не так с вашим кодом, но ниже приведен код, который я написал для той же цели:

-(IBAction)hideShowKeyboard:(id)sender
{
    if([tv isFirstResponder])
    {
        [tv resignFirstResponder];
    }
    else
    {
        [tv becomeFirstResponder];
    }
}

Это было действие для кнопки. а tv - это выход TextView. Но это представление не обнаруживает касания в текстовом представлении после того, как клавиатура скрыта. Если вы хотите обнаруживать касания, просто не устанавливайте для редактируемого свойства значение NO.

person Swapnil Luktuke    schedule 27.07.2010
comment
установка для свойства setEditable значения NO не работает. Клавиатура не отображается при нажатии в текстовом окне, когда она скрыта. - person neha; 27.07.2010
comment
Не устанавливайте для редактирования значение NO (я писал, что не следует устанавливать для него значение NO в ответе). Приведенный выше код обнаруживает касания, если [tv setEditable: NO]; закомментирован. - person Swapnil Luktuke; 27.07.2010
comment
Да .. Я имел в виду то же самое, извините за плохой текст .. но комментировать этот текст не работает .. - person neha; 28.07.2010
comment
ну, я изменил свой код и протестировал ... здесь он работает нормально (я также изменил его в ответе, попробуйте). Изменили ли вы свойство editable или userInteractionEnabled в другом месте кода? Также вам не нужен флаг, как вы это делали в своем коде. isFirstResponder сообщает вам, открыта ли клавиатура для этого текстового представления. В остальном оба наших кода в основном делают одно и то же. - person Swapnil Luktuke; 28.07.2010

person    schedule
comment
Не работает .. После вызова метода hideKeyboard нажатие на textView не обнаруживается .. вызывается только метод showKeyboard для настраиваемой кнопки. - person neha; 27.07.2010
comment
Я использую UITextViewTextDidBeginEditingNotification, который не отправляется, когда я нажимаю textview также textViewShouldBeginEditing: метод делегата не вызывается .. - person neha; 27.07.2010
comment
Ой! какие все делегаты вы используете? - person Manjunath; 27.07.2010
comment
для textView я использую только UITextViewTextDidBeginEditingNotification. - person neha; 27.07.2010
comment
Это работает для меня. Я написал для этого тестовое приложение, и оно работает нормально ... хорошо, как вы используете метод switch case? - person Manjunath; 27.07.2010
comment
При альтернативных нажатиях кнопок я представляю клавиатуру и скрываю клавиатуру, для которой я устанавливаю флаги и проверяю их. Теперь, когда клавиатура скрыта, она не отображается при нажатии в текстовом представлении. - person neha; 27.07.2010
comment
Привет! тогда вам нужно только сбросить респондент, больше ничего не нужно. Протестируйте отредактированный код. - person Manjunath; 31.07.2010