ios - 无法显示“完成”按钮,该按钮关闭了UITextField中的datePickerView

标签 ios swift xcode datepicker uitextfield

我有一个UITextField,它当前正确显示了DatePickerView。我试过四处寻找如何添加“完成”按钮,但找不到方法让它工作或注册以关闭DatePicker
下面是当有人点击DatePicker时显示UITextField的函数:

@IBAction func selectDate(_ sender: UITextField) {
    let datePickerView:UIDatePicker = UIDatePicker()
    datePickerView.datePickerMode = UIDatePickerMode.date
    sender.inputView = datePickerView

    datePickerView.addTarget(self, action: #selector(self.datePickerValueChanged), for: UIControlEvents.valueChanged)
}

这里有一个函数可以跟踪任何更改并在UITextField
func datePickerValueChanged(sender:UIDatePicker) {
    let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = DateFormatter.Style.short
    dateFormatter.timeStyle = DateFormatter.Style.none

    birthday.text = dateFormatter.string(from: sender.date)

}

如何向关闭DatePicker的特定代码添加按钮?

最佳答案

override func viewDidLoad() {
super.viewDidLoad()

let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 30))

let space = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
let doneButton = UIBarButtonItem(title: “Done”, style: .Done, target: self, action: Selector(“doneButtonAction”))

var buttons = [UIBarButtonItem]()
buttons.append(space)
buttons.append(doneButton)
toolbar.setItems(buttons, animated: false)
toolbar.sizeToFit()


self.datePickerView.inputAccessoryView = toolbar
}

func doneButtonAction(){
self.view.endEditing(true)
}

关于ios - 无法显示“完成”按钮,该按钮关闭了UITextField中的datePickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41844956/

相关文章:

ios - SwiftUI:如何获取动态列表或 LazyVStack 中的 View 框架

ios - 当我点击表格 View 中的任何单元格时,单元格不会替换

objective-c - 使用 Objective C 发送 POST 到 Web 服务器

iphone - 使用飞行模式是否是一种可以接受的测试连接缺失的方法?

ios - UICollectionView 仅在一个方向上显示动态大小的单元格

ios - 如何添加多行按钮?

arrays - 将函数放入元组会产生 "cannot convert value of type"错误

javascript - 在 WebView 中提交表单 - Swift 3.1

swift - MyScript Interactive Ink SDK 转换为数学返回?

ios - 将数据 SQlite 加载到 htmlString iOS