子类化文本字段时,语言环境不会从情节提要中获取

时间:2019-02-12 10:06:37

标签: ios swift uitextfield locale

我有一个UITextField,其中显示了UIPickerView。要禁用编辑菜单,我将UITextField子类化并分配到情节提要中。但是现在,文本字段不会根据语言环境的变化来更改值。即使我切换到阿拉伯语,它也始终以英文显示值。

class PickerTextField: UITextField {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func caretRect(for position: UITextPosition) -> CGRect {
        return CGRect.zero
    }

    func selectionRects(for range: UITextRange) -> [Any] {
        return []
    }

    override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
        UIMenuController.shared.isMenuVisible = false
        self.resignFirstResponder()
        return false
    }
}

1 个答案:

答案 0 :(得分:1)

这是一个已知问题:iOS Storyboard localizable strings do not work on UILabel subclasses。该错误会影响UILabelUITextField

最简单的解决方案是将代码中的文本字段本地化。