子类化文本字段时,语言环境不会从情节提要中获取
When subclassing textfield, locale is not picking up from storyboard
我有一个 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
}
}
这是一个已知问题:iOS Storyboard localizable strings do not work on UILabel subclasses。该错误同时影响 UILabel
和 UITextField
。
最简单的解决方案是在代码中本地化文本字段。
我有一个 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
}
}
这是一个已知问题:iOS Storyboard localizable strings do not work on UILabel subclasses。该错误同时影响 UILabel
和 UITextField
。
最简单的解决方案是在代码中本地化文本字段。