NSFormatter显示错误

时间:2014-09-28 16:14:25

标签: cocoa nstextfield nsformatter

我创建了一个自定义的NSFormatter子类,并希望返回错误消息

然而,分配错误并返回有效=否则不起作用(没有显示错误)

- (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 个答案:

答案 0 :(得分:0)

我认为您有问题,因为NSControl(验证用户输入)没有委托使用已实现的方法(dcumentation):

control:didFailToValidatePartialString:errorDescription:

如果你想要@&#34; TOO SHORT&#34;显示在文本字段而不是用户输入的字符串中,您可以返回@&#34; TOO SHORT&#34;在newString方法中:

- (BOOL)isPartialStringValid:(NSString *)partialString
    newEditingString:(NSString **)newString
    errorDescription:(NSString **)error