编辑UITextField时如何放入UIPickerView

时间:2013-05-23 01:33:38

标签: objective-c uitextfield uipickerview

我正在尝试实现一些代码,以便在选择我的UITextField时,会弹出UIPickerView而不是普通的键盘。目前,我已经使用<UITextFieldDelegate,UIPickerViewDelegate>创建了UITextField的子类,但我不确定如何更改UITextField的输入视图属性。我把

textField.inputView = pickerView; 
- (void)textFieldShouldBeginEditing:(UITextField *)textField方法中的

1 个答案:

答案 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