0

I made a custom NSFormatter subclass and want to return an error message

however assigning the error and returning valid = NO doesn't do the trick (no error is shown)

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

I don't use bindings

Peter Lapisu
  • 19,915
  • 16
  • 123
  • 179

1 Answers1

0

I think that you problem because NSControl (which validates user input) don't has delegate with implemented method (dcumentation):

control:didFailToValidatePartialString:errorDescription:

If you want that @"TOO SHORT" displays in text field instead of user inputed string you can return @"TOO SHORT" in newString of method:

- (BOOL)isPartialStringValid:(NSString *)partialString
    newEditingString:(NSString **)newString
    errorDescription:(NSString **)error
toohtik
  • 1,892
  • 11
  • 27