我正在使用Xcode 8和Swift 3.我正在为iOS创建一个应用程序。如何将输入的小写字母自动转换为文本字段中的大写字母,反之亦然?
答案 0 :(得分:0)
第一个答案是好的,但有一些修改。测试带有变音符号的字母。使用复制和粘贴文本方法进行测试。
以下说
class ViewController: UIViewController {
必须是这样的。
class ViewController: UIViewController, UITextFieldDelegate {
这仅适用于一个文本字段。即使锁定或按下Shift键,也要强制输入大写...
@IBOutlet weak var textField: UITextField!
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string.lowercased() == string {
textField.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.uppercased())
} else {
textField.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.uppercased())
}
return false
}
不要忘记在“override func viewDidLoad()”中插入以下内容。
textField.delegate = self
这仅适用于一个文本字段。即使锁定或按下Shift键,也要强制输入小写...
@IBOutlet weak var textField: UITextField!
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string.lowercased() == string {
textField.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.lowercased())
} else {
textField.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.lowercased())
}
return false
}
不要忘记在“override func viewDidLoad()”中插入以下内容。
textField.delegate = self
以下是两个文本字段。假设一个文本字段总是大写,另一个总是小写。
@IBOutlet weak var textFieldAlwaysUppercase: UITextField!
@IBOutlet weak var textFieldAlwaysLowercase: UITextField!
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if textField.isEqual(textFieldAlwaysUppercase) {
textFieldAlwaysUppercase.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.uppercased())
return false
} else if textField.isEqual(textFieldAlwaysLowercase) {
textFieldAlwaysLowercase.text = (textField.text! as NSString).replacingCharacters(in: range, with: string.lowercased())
return false
}
return true
}
不要忘记在“override func viewDidLoad()”中插入以下内容。
textFieldAlwaysUppercase.delegate = self
textFieldAlwaysLowercase.delegate = self