Предотвратить появление клавиатуры с текстовым полем в качестве первого ответчика

Я делаю новый пост, потому что у меня проблема, что я не могу найти ответы в Интернете. Я работаю с Bluetooth-штрихкодером с чистым представлением без видимых текстовых полей. Чтобы получить информацию о штрих-коде, я использую скрытое текстовое поле и отлично работает. Проблема в том, что когда Barcoder отключается, появляется клавиатура, потому что поле является первым ответчиком. Я не хочу отказываться от этого поля, но я не хочу, чтобы появлялась клавиатура.

У меня есть функция, которая улавливает появление клавиатуры:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (keyboardWillShow:) name: UIKeyboardWillShowNotification object:nil];

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

Спасибо, парни!


person Jpellat    schedule 02.02.2012    source источник
comment
Это решено! Я сделал пустой вид ввода, поэтому клавиатура не появляется: '[_textSender setInputView:[[UIView alloc] init]];' Я надеюсь, что это поможет кому-то!   -  person Jpellat    schedule 02.02.2012


Ответы (2)


Ответ Дилипа может сработать для вас. Если это не так, вот несколько альтернатив:

1) установите для свойства textField.enabled значение НЕТ.

2) Подкласс UITextField и возврат nil для inputView:

@interface MyTextField: UITextField

@end

@implementation MyTextField

- (void)inputView
{
    return nil;
}

@end

Если вы используете свой собственный класс текстового поля вместо обычного UITextField, он работает так же, за исключением того, что вы сказали использовать nil для его клавиатуры вместо UIKeyboardView (который используется по умолчанию).

person Nick Lockwood    schedule 02.02.2012

Я не могу правильно понять ваш вопрос, но все же у меня есть предложение для вас.

Если вы устанавливаете текст в UITextField программно, вы можете установить для свойства userInteractionEnabled значение Нет.

person Dhilip    schedule 02.02.2012