xpe*_*int 34 forms iphone keyboard uidatepicker uitextfield
你会怎么做?
我有一个带有UITextField的表单.当我点击它时,我想显示一个UIDatePicker,而不是默认弹出的默认键盘?请注意,我的表单上还有其他元素.
Joh*_*ool 86
我认为这是一种更正式的方式:
UIDatePicker *datePicker = [[[UIDatePicker alloc] init] autorelease];
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
datePicker.tag = indexPath.row;
textField.inputView = datePicker;
Run Code Online (Sandbox Code Playgroud)
小智 9
在.h
UIDatePicker *datePicker;
NSDate *date;
UIToolbar *keyboardToolbar;
Run Code Online (Sandbox Code Playgroud)
在ViewDidLoad中:
if (keyboardToolbar == nil) {
keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];
[keyboardToolbar setBarStyle:UIBarStyleBlackTranslucent];
UIBarButtonItem *extraSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *accept = [[UIBarButtonItem alloc] initWithTitle:@"Accept" style:UIBarButtonItemStyleDone target:self action:@selector(closeKeyboard:)];
[keyboardToolbar setItems:[[NSArray alloc] initWithObjects: extraSpace, accept, nil]];
}
self.txtDate.inputAccessoryView = keyboardToolbar;
datePicker = [[UIDatePicker alloc] init];
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
self.txtDate.inputView = datePicker;
- (void)datePickerValueChanged:(id)sender{
date = datePicker.date;
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd/MM/YYYY"];
[self.txtDate setText:[df stringFromDate:date]];
}
Run Code Online (Sandbox Code Playgroud)
在storyboard中添加到txtDate - > EditingDidEnd
- (IBAction)establishHour:(id)sender{
hour = hourPicker.date;
NSDateFormatter *hf = [[NSDateFormatter alloc] init];
[hf setDateFormat:@"HH:MM"];
[self.txtHour setText:[hf stringFromDate:hour]];
}
Run Code Online (Sandbox Code Playgroud)
将键盘设置为DatePicker,并创建一个带有按钮的工具栏以接受选择.
如果有人愿意,我已经将约翰·库尔的答案转换为快速的方法。我将代码放在viewDidLoad中。
let datePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.Date
datePicker.addTarget(self, action: "datePickerValueChanged:", forControlEvents: UIControlEvents.ValueChanged)
textField.inputView = datePicker
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21288 次 |
| 最近记录: |