[iOS] UITextField

메소드

// 첫 번째 리스폰더로 설정 ( 자동으로 키보드 올라옴 ) 
textField.becomeFirstResponder()
// .edigingDidEndOnExit : 키보드에서 return / done같은 엔터키를 눌렀을 때 발생하는 이벤트
textField.addTarget(self, action: #selector(addItemDone(_:)), for: .editingDidEndOnExit)
/// 텍스트 필드의 텍스트가 변경될 때 마다 호출 되는 델리게이트 메소드
/// 새로운 텍스트를 알려주는게 아닌, 변경해야 하는 범위(range)와 교체해야하는 텍스트(string)만을 제공함
/// - Parameters:
///   - textField: 변경된 텍스트 필드
///   - range: 변경해야할 범위
///   - string: 교체해야하는 텍스트
/// - Returns: 불리언
func textField(_ textField: UITextField,
               shouldChangeCharactersIn range: NSRange,
               replacementString string: String) -> Bool {
    let oldText = textField.text!
    let stringRange = Range(range, in: oldText)!
    let newText = oldText.replacingCharacters(
        in: stringRange,
        with: string)
	
    doneBarButton.isEnabled = !newText.isEmpty
	
    return true
}
// 텍스트 필드의 모두 지우기 버튼을 활성화한 상태에서 x 버튼을 눌렀을 때 호출 되는 
// 델리게이트 메소드
func textFieldShouldClear(_ textField: UITextField) -> Bool {
    doneBarButton.isEnabled = false
    return true
}

프로퍼티

// true : 텍스트 필드가 비어있으면 엔터키를 비활성화
textField.enablesReturnKeyAutomatically = true

댓글남기기