我正在尝试实现一些代码,以便在选择我的UITextField时,会弹出UIPickerView而不是普通的键盘。目前,我已经使用<UITextFieldDelegate,UIPickerViewDelegate>
创建了UITextField的子类,但我不确定如何更改UITextField的输入视图属性。我把
textField.inputView = pickerView;
- (void)textFieldShouldBeginEditing:(UITextField *)textField
方法中的?
答案 0 :(得分:1)
无需继承UITextField来执行此操作。只需在控制器的viewDidLoad中设置它的inputView,你应该好好去。当文本字段成为第一响应者时,选择器视图将显示而不是键盘。
您可能希望这样做,以便在选择器值更改时执行某些操作。
类似的东西:
@interface MyViewController ()
@property (weak, nonatomic) IBOutlet UITextField* dateField;
@end
@implementation MyViewController
- (void) viewDidLoad
{
[super viewDidLoad];
UIDatePicker* picker = [[UIDatePicker alloc] init];
[picker addTarget:self
action:@selector(datePickerValueChanged:)
forControlEvents:UIControlEventValueChanged];
self.dateField.inputView = picker;
}
- (void) datePickerValueChanged:(UIDatePicker*)datePicker
{
NSDateFormatter* aFormatter = [[NSDateFormatter alloc] init];
[aFormatter setDateStyle:NSDateFormatterShortStyle];
[aFormatter setTimeStyle:NSDateFormatterShortStyle];
self.dateField.text = [aFormatter stringFromDate:datePicker.date];
}
@end