UITextview - закрыть UIKeyboard

Мне нужно отклонить UIKeyboard при нажатии кнопки «Готово», когда я нахожусь в UITextView.

Примечание. Я пробовал это с UITextView. Он отлично работает, и я хочу реализовать ту же концепцию в UITextview. я пробовал

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 

методы, но это имеет проблемы.

Это возможно?


person Finder    schedule 25.01.2013    source источник
comment
Не могу тебя достать. вы уже пробовали с UITextView и теперь хотите реализовать с UITextView?   -  person Exploring    schedule 25.01.2013


Ответы (5)


Свифт:

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
    if text == "\n" {
        theTextView.resignFirstResponder()
        return false
    }
    return true
}
person LondonGuy    schedule 14.01.2015

UITextView не имеет возможности сделать кнопку «Выполнить», потому что она должна иметь кнопку возврата. Вы можете поймать нажатие на кнопку возврата, но это не рекомендуется. Рекомендуемый способ отключения клавиатуры при редактировании UITextView — распознавание жестов касания в главном представлении или других элементах.

person Ivan Alek    schedule 25.01.2013

Используйте следующий код, он может вам пригодиться :)

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{

        if([text isEqualToString:@"\n"]) 
        {
            [textView resignFirstResponder];
            return NO;
        }

        return YES;
}
person iPatel    schedule 25.01.2013

Иван Алек прав, UITextView нужна кнопка возврата, чтобы переместить курсор на следующую строку. Вы можете добавить представление над клавиатурой и скрыть клавиатуру с помощью кнопки. Нравится:

UIToolbar       *toolbar    = [[[UIToolbar       alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 30)] autorelease];
UIBarButtonItem *item2      = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(closeKeyboard)] autorelease];
UIBarButtonItem *item1      = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];

[toolbar setItems:[NSArray arrayWithObjects:item1 , item2, nil]];
[textView setInputAccessoryView:toolbar];

И тогда в методе closeKeyboard вы можете отказаться от первого ответившего.

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

Ваше здоровье!

person George    schedule 25.01.2013

добавить кнопку «Готово» на дополнительный вид клавиатуры и реализовать метод «Готово» с помощью

  [textView resignFirstResponder];

и не забудьте установить делегат для textView.

person Madhu    schedule 25.01.2013