Этот вопрос уже имеет ответ здесь:
Там какой-либо путь состоит в том, чтобы установить максимальную длину на UITextField?
Что-то как MAXLENGTH приписывает в полях ввода HTML.
Я думаю, что такого свойства нет.
Но текст, который вы назначаете UILabel, должен быть NSString. И прежде чем присвоить эту строку текстовому свойству UILabel, вы можете, например, использовать следующий метод NSString для обрезки строки по заданному индексу (ваша максимальная длина):
- (NSString *)substringToIndex:(NSUInteger)anIndex
ОБНОВЛЕНИЕ
Я не могу удалить этот ответ, потому что он принят, но он неправильный. Вот правильный код, скопированный из TomA ниже:
#define MAXLENGTH 10
- (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 <= MAXLENGTH || returnKey;
}
ORIGINAL
Я думаю, вы имеете в виду UITextField. Если да, то есть простой способ.
textField: shouldChangeCharactersInRange: replaceString:
. Этот метод вызывается при каждом нажатии символа или предыдущей замене символа. в этом методе вы можете сделать что-то вроде этого:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if ([textField.text length] > MAXLENGTH) {
textField.text = [textField.text substringToIndex:MAXLENGTH-1];
return NO;
}
return YES;
}