0

我制作了一个自定义 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;
}

我不使用绑定

4

1 回答 1

0

我认为你的问题是因为 NSControl (它验证用户输入)没有实现方法的委托(dcumentation):

control:didFailToValidatePartialString:errorDescription:

如果您希望在文本字段中显示 @"TOO SHORT" 而不是用户输入的字符串,您可以在方法的 newString 中返回 @"TOO SHORT":

- (BOOL)isPartialStringValid:(NSString *)partialString
    newEditingString:(NSString **)newString
    errorDescription:(NSString **)error
于 2014-09-29T13:15:48.247 回答