Начиная с iOS 3.2, UITextField
поддерживает свойство inputView
для назначения настраиваемого представления для использования в качестве клавиатуры, что обеспечивает способ отображения UIPickerView
:
. Вы можете использовать inputView
свойство UITextField
, возможно, в сочетании со свойством inputAccessoryView
.Вы присваиваете свой pickerView
свойству inputView
, а для отмены средства выбора - кнопку готово для свойства inputAccessoryView
.
UIPickerView *myPickerView = [[UIPickerView alloc] init];
//myPickerView configuration here...
myTextField.inputView = myPickerView;
Вот так.Это не даст вам прямого способа отклонить представление, поскольку у вашего UIPickerView
нет кнопки возврата, поэтому я рекомендую использовать свойство inputAccessoryView
для отображения панели инструментов с кнопкой «Готово» (панель предназначена только для эстетики,Вы также можете просто использовать объект UIButton
):
UIToolbar *myToolbar = [[UIToolbar alloc] initWithFrame:
CGRectMake(0,0, 320, 44)]; //should code with variables to support view resizing
UIBarButtonItem *doneButton =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self action:@selector(inputAccessoryViewDidFinish)];
//using default text field delegate method here, here you could call
//myTextField.resignFirstResponder to dismiss the views
[myToolbar setItems:[NSArray arrayWithObject: doneButton] animated:NO];
myTextField.inputAccessoryView = myToolbar;