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
Schlüsselwörter
- berlin (2)
- blog (5)
- browser (2)
- cocoaheads (5)
- dropbox (1)
- git (7)
- idisk (1)
- iphone (28)
- javascript (2)
- kurztip (4)
- linktips (17)
- mac (9)
- macruby (1)
- objective-c (8)
- ortung (1)
- programmierung (22)
- rails (1)
- railsconf (7)
- ruby (6)
- ruby on rails (7)
- schnipsel (14)
- server (2)
- spiele (1)
- statistiken (3)
- stuttgart (3)
- testen (4)
- tidy (1)
- versionskontrolle (5)
- wwdc (1)
- xcode (9)
- xml (1)
Kommentare