UITextField 문자 수

3545 단어 XcodeiOS

이게 뭐야?


트위터에서 흔히 볼 수 있는 글자 수를 계산하는 방법이다.

UITextView의 해설은 자주 있지만 UITextField의 것은 의외로 없기 때문에 적어 두어야 한다.

방법


UITextView 문자 수
예를 들어 상술한 보도와 같이 shouldChangeTextInRange 하면 언뜻 보기에는 문제가 없는 것 같지만 "灬.°"등도 한 글자로 계산하기 때문에 계수가 빗나간다.
  • おはよう 4자
  • おはようこ 5자
  • おはようご6자(이상)
  • おはよう5글자(이상)
  • 따라서 ShouldChange(입력 전)이 아니라 DidChange(입력 후)의 출력문을 계산한다.하지만 안타깝게도 UITextField는 존재하지 않습니다.

    대책

    UITextFieldTextDidChangeNotification에서 입력 후 알림을 받습니다.
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(textFieldDidChange:)
                                                 name:UITextFieldTextDidChangeNotification
                                               object:_titleField];
    
    NSNotificationCenter.defaultCenter().addObserver(self,
     selector:"textFieldDidChange:",
     name: UITextFieldTextDidChangeNotification,
     object: nil)
    
    알림 후 호출된 방법으로 문자 수를 계산합니다.
    - (void)textFieldDidChange:(NSNotification *)notification
    {
        NSUInteger length = textField.text.length;
    }
    
    func textFieldDidChange(notification:NSNotification) {
        let length = textField.text.length
    }
    
    이제 정확한 문자 수를 계산할 수 있다.
    입력된 문자 수가 아니라 입력할 수 있는 남은 문자 수를 표시하려면 최대 문자 수에서 빼면 됩니다.

    좋은 웹페이지 즐겨찾기