Как убрать клавиатуру при прикосновении к UITextView, когда клавиатура уже включена? - PullRequest
2 голосов
/ 27 января 2010

Я пишу приложение, которое имеет UITextView, который позволяет редактировать. Когда пользователь впервые касается UITextView, появляется клавиатура, и я хочу убрать эту клавиатуру, когда пользователь снова касается UITextView, например, Я ввел некоторые данные в текстовое представление, и на экране все еще отображается клавиатура, я нажимаю на UITextView, что должно привести к тому, что клавиатура будет втянута.

Есть ли способ добиться этого?

(я знаю, что могу предоставить кнопку «Готово» и сделать это, но я хочу добиться этого, нажав на сам UITextView)

Ответы [ 4 ]

2 голосов
/ 27 января 2010

Кроме того, я бы настоятельно рекомендовал вам не использовать элементы состояния переключения на iPhone. Это просто, чтобы дважды нажать в реальном мире. Вот почему все приложения Apple используют либо клавишу «Return» на клавиатуре, либо кнопку «Готово».

В рассматриваемом вами интерфейсе пользователи обнаружат, что закрываются, а затем случайно открывают клавиатуру примерно в 10% случаев или чаще. Это сделает ваше приложение более громоздким и громоздким.

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

То, что вы ищете, - это большая прозрачная кнопка «overlapButton», которая всегда находится поверх uitextview.

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

[overlapButton setHidden:YES];

При нажатии на текстовое представление появится клавиатура и будет вызван следующий метод внутри вашего текстового представителя:

-(BOOL)textViewShouldBeginEditing:(UITextView *)textView{
    [overlapButton setHidden:NO];
}

Здесь вам нужно установить видимую кнопку «overlapButton», чтобы при поднятой клавиатуре можно было нажимать кнопку, которая теперь перекрывает текстовое представление. По действию кнопки вы можете скрыть клавиатуру:

-(IBAction) overlapButtonTapped{
    [myTextView resignFirstResponder];
}

После отставки первого респондента будет вызван следующий метод:

-(BOOL)textViewShouldEndEditing:(UITextView *)textView{
    [overlapButton setHidden:YES];
}

После установки скрытого свойства соответственно для кнопки (как указано выше) у вас снова появляется «чистое» текстовое представление, которое вы можете снова нажать, чтобы показать клавиатуру… и т. Д. И т.

Приветствия.

1 голос
/ 27 января 2010

Вы должны позвонить resignFirstResponder для UITextView. Допустим, у вас есть IBOutlet для просмотра текста:

@property (nonatomic, retain) IBOutlet UITextView *comment;

Тогда [comment resignFirstResponder]; можно вызвать из touchesBegan или тому подобного.

Смотри, например, Как отклонить клавиатуру при использовании UITextView .

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

Я согласен с вами TechZen. Я видел, как это произошло! Я бы не советовал это тоже! Это также делает редактирование очень трудным, если не невозможным, для редактирования / копирования / вставки жестов. С другой стороны, если мужчина все еще хочет этого ужасно ..: P код, предоставленный мной в моем другом посте, приносит удовольствие! Приветствия.

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