問題描述:在項目開發(fā)中梢什,經(jīng)常會碰到一個文本輸入框?qū)斎胛谋镜拈L度的限制践图,每次的處理方式都不太統(tǒng)一杨何,現(xiàn)在做一次總結(jié)酱塔。
對于輸入內(nèi)容長度的判斷,應(yīng)該放在UITextFieldDelegate的代理方法中來判斷
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
? ? if (textField == self.titleField) {
? ? ? ? if (string.length == 0) return YES;
? ? ? ? NSInteger existedLength = textField.text.length;
? ? ? ? NSInteger selectedLength = range.length;
? ? ? ? NSInteger replaceLength = string.length;
? ? ? ? if (existedLength - selectedLength + replaceLength > 20) {
? ? ? ? return NO;
? ? ? ? ?}
? ? }
return YES;
}
此外危虱,再給UITextField添加一個事件監(jiān)聽:
[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldDidChange:(UITextField *)textField
{
? ? if (textField == self.titleField) {
? ? ? ? if (textField.text.length > 20) {
? ? ? ? ? ? textField.text = [textField.text substringToIndex:20];
? ? ? ? }
? ? }
}