.telephoneNumber 无法将键盘中建议的手机号码设置到我的文本字段(仅在设备中运行)
lazy var mobileTextField : UITextField = {
let s = UITextField()
s.textColor = UIColor.black
s.backgroundColor = UIColor.white
s.keyboardType = .phonePad
s.textContentType = .telephoneNumber
s.addTarget(self, action: #selector(textFieldDidChange(_:)), for: UIControl.Event.editingDidEndOnExit)
s.delegate = self
return s
}()
@objc override func textFieldDidChange(_ textField: UITextField) {
print("textFieldDidChange = \(textField.text)")
guard let currentText = textField.text else {
return
}
textField.text = currentText
}
当您使用 UITextField 并尝试将文本输入类型设置为建议的手机号码时,您需要确保文本字段已正确配置为接受电话号码。在 Swift 中,这可以通过设置 UITextField 的 KeyboardType 和 textContentType 属性来完成。
这是一个示例实现:
迅速 复制代码 导入 UIKit
ViewController 类:UIViewController {
@IBOutlet weak var phoneNumberTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
setupPhoneNumberTextField()
}
private func setupPhoneNumberTextField() {
phoneNumberTextField.keyboardType = .phonePad
if #available(iOS 12.0, *) {
phoneNumberTextField.textContentType = .telephoneNumber
} else {
// Fallback on earlier versions
phoneNumberTextField.textContentType = .init(rawValue: "telephoneNumber")
}
}
}