在textfield中输入小写字母为大写,反之亦然

时间:2017-10-20 01:58:35

标签: ios swift textfield lowercase

我正在使用Xcode 8和Swift 3.我正在为iOS创建一个应用程序。如何将输入的小写字母自动转换为文本字段中的大写字母,反之亦然?

1 个答案:

答案 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