[英]How to set UIPickerView as inputView to UITextField in iPhone
我正在嘗試將UIPickerView
作為inputView打開到UITextfield
。
這是我在textFieldDidBeginEditing
代碼:
UIPickerView *categoryPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 43, 320, 480)];
categoryPicker.delegate = self;
categoryPicker.dataSource = self;
[categoryPicker setShowsSelectionIndicator:YES];
txtCategory.inputView = categoryPicker;
UIToolbar *_providerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 56)];
_providerToolbar.barStyle = UIBarStyleBlackOpaque;
[_providerToolbar sizeToFit];
NSMutableArray *barItems = [[NSMutableArray alloc] init];
UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[barItems addObject:flexSpace];
UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissActionSheet)];
[barItems addObject:doneBtn];
[_providerToolbar setItems:barItems animated:YES];
txtCategory.inputAccessoryView = _providerToolbar;
第一次工作正常,但是當我從UIPickerView
選擇任何值時,它正在隱藏並且我的UITextfield
是可編輯的,而UIPickerView當時沒有顯示。 我究竟做錯了什么?
我建議您將代碼移至viewDidLoad:
因為textFieldDidBeginEditing:
在textField為其加載鍵盤時被調用。 因此,現在不是更改textField的inputAccessoryView
的時候。
Use this...
NSDate *now = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd MMM, yyyy"];
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
[datePicker setMaximumDate:now];
datePicker.datePickerMode = UIDatePickerModeDate;
txtForDate.text = [dateFormat stringFromDate:datePicker.date];
[datePicker addTarget:self action:@selector(updateTextField:)
forControlEvents:UIControlEventValueChanged];
[txtForDate setInputView:datePicker];
// txtForDate是UITextField
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.