gpt4 book ai didi

ios - 为什么我选择日期后日期选择器会自动隐藏?我想在点击 "done"按钮后隐藏

转载 作者:行者123 更新时间:2023-11-29 05:33:07 26 4
gpt4 key购买 nike

为什么我选择日期后日期选择器会自动隐藏?我想在单击“完成”按钮后隐藏。

import UIKit

class ViewController: UIViewController {
@IBOutlet weak var inputTextFiled: UITextField!

private var datePicker:UIDatePicker?

override func viewDidLoad() {
super.viewDidLoad()

datePicker = UIDatePicker()
datePicker?.datePickerMode = .date
datePicker?.addTarget(self, action: #selector(ViewController.donedatePicker(datePicker:)), for: .valueChanged)

datePicker?.locale = NSLocale(
localeIdentifier: "zh_CN") as Locale

datePicker?.setValue(UIColor.white, forKey: "textColor")

inputTextFiled.inputView = datePicker

let toolBar = UIToolbar().ToolbarPiker(mySelect: #selector(ViewController.dismissPicker))

inputTextFiled.inputAccessoryView = toolBar
}

@objc func donedatePicker(datePicker:UIDatePicker){
//For date formate
let formatter = DateFormatter()
formatter.dateFormat = "yyyy年MM月dd日"
inputTextFiled.text = formatter.string(from: datePicker.date)
//dismiss date picker dialog
self.view.endEditing(true)
}

@objc func cancelDatePicker(){
//cancel button dismiss datepicker dialog
self.view.endEditing(true)
}

@objc func dismissPicker() {
view.endEditing(true)
}
}

extension UIToolbar {
func ToolbarPiker(mySelect : Selector) -> UIToolbar {
let toolBar = UIToolbar()

toolBar.barStyle = UIBarStyle.default
toolBar.isTranslucent = true
toolBar.tintColor = UIColor.black
toolBar.sizeToFit()

let doneButton = UIBarButtonItem(title: "done", style: UIBarButtonItem.Style.plain, target: self, action: mySelect)
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "cancel", style: UIBarButtonItem.Style.plain, target: self, action: Selector(("cancelDatePicker")))

toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.isUserInteractionEnabled = true

return toolBar
}
}

这是我的所有代码,请帮助我,我想在单击“完成”按钮后隐藏。

最佳答案

您正在使用 datePickeras inputView of textield ,并且在 donedatePicker 中,您只是通过调用此 self.view.endEditing(true) 来强制结束编辑,因此从 didedatePicker 中删除它完成按钮的方法及使用

 @objc func donedatePicker(datePicker:UIDatePicker){
//For date formate
let formatter = DateFormatter()
formatter.dateFormat = "yyyy年MM月dd日"
inputTextFiled.text = formatter.string(from: datePicker.date)


}

关于ios - 为什么我选择日期后日期选择器会自动隐藏?我想在点击 "done"按钮后隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57340195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com