现在我有一个带有文本字段的视图控制器。将UIDatePicker与UITextField结合使用,不带文本区域编辑
当我点击进入文本字段时,会显示UIDatePicker而不是普通键盘。
在UIDataPicker中选择日期/时间,更新文本字段。
这是我的代码:
@IBAction func fieldValueEditingDidBegin(sender: UITextField) {
if self.dateTimeEdit {
let datePickerView:UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.DateAndTime
sender.inputView = datePickerView
datePickerView.addTarget(self, action: Selector("datePickerValueChanged:"), forControlEvents: UIControlEvents.ValueChanged)
}
}
func datePickerValueChanged(sender:UIDatePicker) {
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle
dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
fieldValueTextField.text = dateFormatter.stringFromDate(sender.date)
doneBarButtonItem.enabled = true
}
我想防止用户在的UITextField输入其他文字(例如,使用外部键盘或粘贴字符串)
是否可以强制使用只有UIDataPicker和防止键入UITextField?
你为什么不使用'UILabel',而不是一个文本框的? – Aaron
因为UILabel没有inputView – LastMove
如果你打算限制所有的输入到日期选择器,那么你不需要输入文本的功能。您可以将点按手势添加到标签,并让日期选择器选择填充标签的文本。 – Aaron