DateRow本地不变

时间:2018-12-12 19:59:22

标签: swift uidatepicker eureka-forms

由于Eureka表单框架,我正在构建FormViewController,但是我的DateRow遇到了问题。我希望UIDatePicker用法语显示,但是几个月总是用英语显示。

我试图在另一个视图控制器上以法语设置另一个UIDatePicker,它正常工作:

let date = UIDatePicker()
date.datePickerMode = .date
date.locale = Locale(identifier: "fr")
date.frame = CGRect(x: 50, y: 200, width: 300, height: 200)
view.addSubview(date)

French Date Picker

由于UIDatePicker本地属性,语言发生了变化,因此我尝试在Eureka文件中设置日期选择器的地方添加此属性(因为我认为我们无法访问DateRow对象中的日期选择器)。 / p>

open class DateCell: Cell<Date>, CellType {

public var datePicker: UIDatePicker

public required init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
    datePicker = UIDatePicker()
    super.init(style: style, reuseIdentifier: reuseIdentifier)
}

required public init?(coder aDecoder: NSCoder) {
    datePicker = UIDatePicker()
    super.init(coder: aDecoder)
}

open override func setup() {
    super.setup()
    accessoryType = .none
    editingAccessoryType =  .none
    datePicker.datePickerMode = datePickerMode()
    datePicker.addTarget(self, action: #selector(DateCell.datePickerValueChanged(_:)), for: .valueChanged)
    datePicker.locale = Locale(identifier: "fr")
}

但是日期选择器始终保持英语。

您对我应该在哪里添加本地行有任何想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以以datePicker的身份访问DateRow的{​​{1}}。要更改其语言环境,请使用cell.datePicker回调。您可能还需要设置行的格式化程序,以便使用正确的语言环境显示值:

cellSetup