2017-10-20 108 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 
相關問題