stackOverflow의 다른 모든 게시물은 프로그래밍 방식으로 만들지 않고 IDE로 만든 UITextField를 참조하기 때문에 문제에 대한 해결책을 찾을 수 없습니다.사용자 지정 UITextField 최대 길이 설정
사용자 정의 UITextField
이 (void)viewDidLoad
안에 생성되었습니다. leftView
속성에 액세스 할 수 있도록 프로그래밍 방식으로 생성했습니다.
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 66, screenAdj, 30)];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.font=[UIFont fontWithName:@"Helvetica" size:14];
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
textField.returnKeyType = UIReturnKeyDone;
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
[textField addTarget:self action:@selector(textFieldShouldReturn:)forControlEvents:UIControlEventEditingDidEndOnExit];
textField.text=[defaults stringForKey:@"username"];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 40)];
label.font=[UIFont fontWithName:@"Helvetica" size:14];
label.text = @"Your name";
label.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
textField.leftViewMode = UITextFieldViewModeAlways;
textField.leftView = label;
는 또한 구현하는 텍스트 필드 내부의 최대 문자를 제한하려면 :
- (BOOL)textField:(UITextField *) textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSUInteger oldLength = [textField.text length];
NSUInteger replacementLength = [string length];
NSUInteger rangeLength = range.length;
NSUInteger newLength = oldLength - rangeLength + replacementLength;
BOOL returnKey = [string rangeOfString: @"\n"].location != NSNotFound;
return newLength <= MAX_LENGTH_USERNAME || returnKey;
}
하지만 난 내에 textField은 "참조"위의 function.Tried
[textField addTarget:self action:@selector(...
하지 않는 것을 깨달았다
행운은 없습니다. 도움이 되었습니까?
결국 가장 중요한 코드 조각을 왜 자르셨습니까? [tff addTarget : 자기 행동 : @selector (변경됨 :) forControlEvents : UIControlEventEditingChanged]; 너가 필요한거야. – jimpic
시도 textField.delegate = 자기; 그리고 viewcontroller implemets shouldChangeCharactersInRange; – zt9788
Jimpic 그것은 작동하지 않았다. 그러나 나는 나의 해결책 (어쨌든 덕분에)을 얻었다. – Theodoros80