NSFormatter показать ошибку

Я сделал собственный подкласс NSFormatter и хочу вернуть сообщение об ошибке

однако присвоение ошибки и возвращение valid = NO не помогает (ошибка не отображается)

- (BOOL)isPartialStringValid:(NSString **)partialStringPtr
       proposedSelectedRange:(NSRangePointer)proposedSelRangePtr
              originalString:(NSString *)origString
       originalSelectedRange:(NSRange)origSelRange
            errorDescription:(NSString **)error
{
    BOOL valid = YES;

    NSString *proposedString = *partialStringPtr;
    if ([proposedString length] < self.minLength) {
        *error = @"TOO SHORT";
        valid = NO;
    }

    return valid;
}

Я не использую привязки

1 ответ

Я думаю, что у вас проблема, потому что NSControl (который проверяет пользовательский ввод) не имеет делегата с реализованным методом ( dcumentation):

control:didFailToValidatePartialString:errorDescription:

Если вы хотите, чтобы @"TOO SHORT" отображалось в текстовом поле вместо введенной пользователем строки, вы можете вернуть @"TOO SHORT" в newString метода:

- (BOOL)isPartialStringValid:(NSString *)partialString
    newEditingString:(NSString **)newString
    errorDescription:(NSString **)error
Другие вопросы по тегам