2017-10-20 105 views
-4

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

+0

的可能的复制[总是打字(力)小写或大写 - IOS迅速](https://stackoverflow.com/questions/31989028/typing-always-force-lowercase-or-uppercase-ios-swift ) –

回答

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 
} 

不要忘记插入下面的内“覆盖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 
} 

不要忘记插入下面的内“覆盖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 
相关问题