
YYYY-MM-DD
有没有简单的方法来更改键盘?
解决方法 您可以使用UITextFIEld的inputVIEw属性“替换”键盘:- (voID) initializeTextFIEldinputVIEw { UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectZero]; datePicker.datePickerMode = UIDatePickerModeDate; [datePicker addTarget:self action:@selector(dateUpdated:) forControlEvents:UIControlEventValueChanged]; self.textFIEld.inputVIEw = datePicker;}- (voID) dateUpdated:(UIDatePicker *)datePicker { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd"]; self.textFIEld.text = [formatter stringFromDate:datePicker.date];} UIDatePickers没有像UIPickerVIEws这样的委托,所以这就是必须添加一个动作就好像它是一个UIbutton的原因. :在选择器声明的末尾提供UIDatePicker,以方便获取更改日期.如果您不想在方法中发送对象,可以通过引用UITextFIEld的inputVIEw来获取UIDatePicker:
UIDatePicker *datePicker = (UIDatePicker *)self.textFIEld.inputVIEw;
最后,在使用NSDateFormatter设置格式时,最好创建一个方法来返回NSDateFormatter对象,以确保格式一致.至少,在项目中创建一个常量/宏,声明格式字符串.
编辑
正如Pavan在评论主题中所说,如果你想在键盘上方添加一个完成按钮,请使用inputAccessoryVIEw:
UIToolbar *toolbar = [[UIToolbar alloc] init];UIbarbuttonItem *donebutton = [[UIbarbuttonItem alloc] initWithTitle:@"Done" style:UIbarbuttonItemStyleDone target:self action:@selector(donebuttonWaspressed:)];UIbarbuttonItem *flexibleSeparator = [[UIbarbuttonItem alloc] initWithbarbuttonSystemItem:UIbarbuttonSystemItemFlexibleSpace target:nil action:nil];toolbar.items = @[flexibleSeparator,donebutton];self.textFIEld.inputAccessoryVIEw = toolbar;
编辑2,SWIFT
看起来像这样答案已经过时了.使用Swift 3添加实现:
@IBOutlet weak var textFIEld: UITextFIEld!overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() self.initializeTextFIEldinputVIEw()}func initializeTextFIEldinputVIEw() { // Add date picker let datePicker = UIDatePicker() datePicker.datePickerMode = .date datePicker.addTarget(self,action: #selector(dateChanged(_:)),for: .valueChanged) self.textFIEld.inputVIEw = datePicker // Add toolbar with done button on the right let toolbar = UIToolbar(frame: CGRect(x: 0,y: 0,wIDth: self.vIEw.bounds.wIDth,height: 1)) let flexibleSeparator = UIbarbuttonItem(barbuttonSystemItem: .flexibleSpace,target: nil,action: nil) let donebutton = UIbarbuttonItem(barbuttonSystemItem: .done,target: self,action: #selector(donebuttonpressed(_:))) toolbar.items = [flexibleSeparator,donebutton] self.textFIEld.inputAccessoryVIEw = toolbar}func dateChanged(_ datePicker: UIDatePicker) { let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd" self.textFIEld.text = formatter.string(from: datePicker.date)} 您还可以通过在UITextFIEld中转换inputVIEw来获取UIDatePicker:
let datePicker = self.textFIEld.inputVIEw as? UIDatePicker总结
以上是内存溢出为你收集整理的用TableViewController中的日期选择器替换iOS7键盘全部内容,希望文章能够帮你解决用TableViewController中的日期选择器替换iOS7键盘所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)