iPhone Code Schnipsel: Maximale Anzahl Zeichen im UITextField begrenzen

Gegeben

Man hat ein UITextField und möchte verhindern, dass ein User mehr als X Zeichen eingeben kann.

Gesucht

Eine Lösung ohne UIAlertView. Es soll nur verhindert werden, dass weitere Zeichen eingegeben werden.

Lösung

Erstmal zwei Konstanten definieren:

static const NSInteger kUserNameMaxLength = 20;
static const NSInteger kTextFieldNameTag = 1;

Dann entsprechend dem UITextField das Tag zuweisen (static const NSInteger) und den delegate setzen:

textField.tag = kTextFieldTagLimited;
textField.delegate = self;

Dann lässt sich das Problem mit dieser UITextFieldDelegate Methode ziemlich einfach lösen:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  if (textField.tag == kTextFieldTagLimited) {
    NSString *testString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    if ([testString length] > kUserNameMaxLength) {    
      textField.text = [textField.text substringToIndex:kUserNameMaxLength];
      return NO;
    }
  }
  return YES;
}

Schlüsselwörter: iphone, objective-c, programmierung, schnipsel

Von Stefan Haubold vor 77 Tagen hinzugefügt


Kommentare

Kommentar hinzufügen

Twitter

Uns auf Twitter verfolgen: