2017-10-20 21 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 
} 

")은 (viewDidLoad에 FUNC 무시"다음 내부를 삽입하는 것을 잊지 마십시오.

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 
} 

")은 (viewDidLoad에 FUNC 무시"다음 내부를 삽입하는 것을 잊지 마십시오. 다음
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 
} 

")은 (viewDidLoad에 FUNC 무시"다음 내부를 삽입하는 것을 잊지 마십시오. 의

textFieldAlwaysUppercase.delegate = self 
    textFieldAlwaysLowercase.delegate = self