Установите maxlength для определенного UITextField - PullRequest
0 голосов
/ 07 мая 2018

Я пытался установить maxlength для моего поля UIText, но это также влияет на другое поле UIText.

я пытался использовать:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    // Prevent crashing undo bug – see note below.
    if(range.length + range.location > textField.text.length)
    {
        return NO;
    }

    NSUInteger newLength = [textField.text length] + [string length] - range.length;
    return newLength <= 25;
}

Я бы хотел установить maxlength только для определенного поля uitext.

Ответы [ 3 ]

0 голосов
/ 07 мая 2018

Сначала проверьте текстовое поле редактирования. Затем проверьте длину строки

- (BOOL)textField:(UITextField *) textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    /// always allow other textfields
    if (textField != specificTextfield) {
         return YES;
    }

    /// check max length

    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;
}

Ссылка: Установить UITextField Максимальная длина

0 голосов
/ 07 мая 2018

Добавьте тег к вашему текстовому полю. и в методе делегата shouldChangeCharactersInRange проверьте, соответствует ли текстовое поле определенному тегу.

#define MAXLENGTH 10

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField.tag == 1){
    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;
}
return true;
}
0 голосов
/ 07 мая 2018

Это для быстрой, попробуйте это

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let length = ((txtPhoneNumber.text?.count)! - range.length) + string.count
    if length <= 9 {
        return true
    }
    return false
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...