Использование UIPickerView в качестве inputView пользовательского UIView

Мне нужно руководство, потому что, похоже, я неправильно понял некоторые понятия. Все, чего я хотел бы добиться, это иметь UIPickerView в качестве inputView для UITextField. Это легко сделать self.textField.inputView = self.pickerView. Проблема в том, что у вас все еще есть мигающий курсор и что устройство с клавиатурой BT все еще может вводить текст в текстовое поле. Итак, я читал о пользовательских UIViews, которые могут выступать в качестве первых ответчиков. Я создал подкласс UIView и добавил canBecomeFirstResponder, canResignFirstResponder, becomeFirstResponder и resignFirstResponder, и все они возвращают yes. Проблема в том, что когда я нажимаю на вид, ничего не происходит. Определение пользовательского inputView не помогло, он просто ведет себя так, как будто ничего не произошло.

Любое руководство приветствуется. Спасибо, З.


person Zoltán    schedule 16.09.2014    source источник


Ответы (2)


Вам необходимо создать Custom TextField и переопределить следующий метод.

- (CGRect)caretRectForPosition:(UITextPosition *)position
{
    return CGRectZero;
}

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

//Запретить копирование и вставку или редактирование текста с помощью клавиатуры Bluetooth.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
        return NO;
}
person Harshini Nerella    schedule 18.09.2014

1. создать подкласс класса (UIview)UIResponder

2.redeclare inputview как чтение-запись

@property (nonatomic, strong, readwrite) UIView *inputView;

3. установите для canBecomeFirstResponder значение YES

- (BOOL)canBecomeFirstResponder {
return YES;
}

4.set inputview, такой как datepicker

self.inputView = self.datePicker;

5. установите для UIResponder значение firstResponder, когда захотите

[self becomeFirstResponder];

5. вы можете видеть, как DatePicker показывает клавиатуру

person wlixcc    schedule 06.03.2018