【问题标题】:Date formatting in UITextField when entering a date using UIDatePicker (in UIActionSheet) in SWIFT在 SWIFT 中使用 UIDatePicker(在 UIActionSheet 中)输入日期时,UITextField 中的日期格式
【发布时间】:2015-07-08 23:59:03
【问题描述】:

我想创建一个 UITextField,当触摸它时会以 ActionSheet 方式激活 UIDatePicker。虽然有一些资源,但它没有显示如何以这种方式格式化日期。下面的代码是我从 stackoverflow 中找到的最好的代码,但没有给出日期的格式:

import UIKit

class SignUpViewController: UIViewController, UITextFieldDelegate {

var datePicker:UIDatePicker!

@IBOutlet weak var dateTextField: UITextField!


override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    // UI DATE PICKER SETUP

    var customView:UIView = UIView(frame: CGRectMake(0, 100, 320, 160))
    customView.backgroundColor = UIColor.clearColor()

    datePicker = UIDatePicker(frame: CGRectMake(0, 0, 320, 160))
    datePicker.datePickerMode = UIDatePickerMode.Date



    customView.addSubview(datePicker)
    dateTextField.inputView = customView
    var doneButton:UIButton = UIButton (frame: CGRectMake(100, 100, 100, 44))
    doneButton.setTitle("Done", forState: UIControlState.Normal)
    doneButton.addTarget(self, action: "datePickerSelected", forControlEvents: UIControlEvents.TouchUpInside)
    doneButton.backgroundColor = UIColor .grayColor()
    dateTextField.inputAccessoryView = doneButton



}


func datePickerSelected() {
    dateTextField.text = datePicker.date.description
}

【问题讨论】:

    标签: swift ios8 datepicker nsdateformatter uiactionsheet


    【解决方案1】:

    什么不工作?日期没有您想要的格式?看看NSDateFormatter

    还有:

    • 无需为选择器创建包装视图:只需立即分配给inputView
    • 不要为此使用UITextField:它毕竟不是一个文本 字段!这不仅是危险的,因为您不能轻易地通过外部键盘禁用输入,而且语义也会影响可访问性。而是创建一个自定义 UIControl 子类并使用标签显示文本。您可以在此处分配您的输入视图。

    【讨论】:

    • 如果您不介意,能否请您在上面的代码中发布如何实现 NSDateFormatter?
    • @MartinQ 我把这留给你,在 StackOverflow 上有足够的资源来说明如何实现这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    相关资源
    最近更新 更多