Ios 在文本字段中输入小写字母到大写字母,反之亦然

Ios 在文本字段中输入小写字母到大写字母,反之亦然,ios,swift,textfield,lowercase,Ios,Swift,Textfield,Lowercase,我使用的是Xcode 8和Swift 3。我正在为iOS创建一个应用程序。如何使输入的小写字母在文本字段中自动转换为大写字母,反之亦然?第一个答案是可以的,但需要一些修改。在带有变音符号的字母上测试。使用复制和粘贴文本方法进行测试 下面说 class ViewController: UIViewController { 一定是这样 class ViewController: UIViewController, UITextFieldDelegate { 这仅适用于一个文本字段。即使在Shi

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

第一个答案是可以的,但需要一些修改。在带有变音符号的字母上测试。使用复制和粘贴文本方法进行测试

下面说

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
}
@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()”中插入以下内容


这仅适用于一个文本字段。要强制输入小写字母,即使在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
}
@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()”中插入以下内容


以下是两个文本字段。假设一个文本字段始终为大写,另一个始终为小写

@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