English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

iOS 코드로 TextField 입력 길이 제한

온라인에서 textField 입력 길이 제한 방법이 많지만, 저는 모두가 완벽하지 않다고 생각합니다. 정확히 말하면 실제 개발 요구 사항에 부합하지 않다고 할 수 있습니다. 따라서 여기서 textField 입력 길이 제한 방법을 정리했습니다.

 저는 감시 메서드 대신 완전히 다른 대리자 구현 메서드를 사용했으며, 왜 감시를 사용하지 않는지 궁금하시나요?63;63;63;
 이 문서를 볼 때까지는 입력 길이 제한을 사용하여 입력 내용을 완벽하게 제어할 수 없다는 문제로 고민할 가능성이 높습니다.

 간단한 예시를 들어 보겠습니다: 

당신이 제한해야 할 입력 길이는30개의 문자, 당신이 입력하면30개의 문자 후에 들리는 감시는 잘 사용할 수 있지만, 문제도 따라옵니다. 입력 내용의 중간 위치로 커서를 이동시키면 입력할 수 있습니다. 이 입력은 매우 불편합니다. 입력 후 커서는 마지막으로 이동되며, 입력한 내용은 텍스트 중간에 남아 있어 이는 요구와 일치하지 않습니다.

 따라서 여기서 대리자를 사용하여 우리가 원하는 효과를 잘 수행할 수 있습니다. 몇 행의 코드만으로도 도움이 되길 바랍니다.

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  if (textField == self.liveThemeTextField) {
  //이 if는 지우기 작업을 가져오기 위해 사용되며, 이 if가 없으면 글자 수 제한에 도달했을 때 지우기 키를 사용할 수 없는 문제가 발생합니다.
    if (range.length == 1 && string.length == 0) {
      return YES;
    }
    //쉽다
    else if (self.liveThemeTextField.text.length >= 30) {
      self.liveThemeTextField.text = [textField.text substringToIndex:30];
      return NO;
    }
  }
  return YES;
}

이상으로 본 글의 모든 내용이며, 여러분의 학습에 도움이 되길 바랍니다. 또한, 지지와 외침 강의에 많이 도와주시길 바랍니다.

당신이 좋아할 만한 것