Cocoa 根据验证更改NSTextField文本颜色(绑定)

Cocoa 根据验证更改NSTextField文本颜色(绑定),cocoa,nstextfield,Cocoa,Nstextfield,我有一个使用验证的绑定的NSTextField,如果该值无效,则永远不会调用该集;如果用户试图用无效值保留该字段,应用程序将显示一个错误警报,其中包含两个选项(放弃或继续编辑),依此类推 为了获得更好的UI,我希望在验证中更改文本颜色: -(BOOL)validateMinValue:(id *)ioValue error:(NSError * __autoreleasing *)outError { ParameterValue * param=*ioValue; if(*io

我有一个使用验证的绑定的NSTextField,如果该值无效,则永远不会调用该集;如果用户试图用无效值保留该字段,应用程序将显示一个错误警报,其中包含两个选项(放弃或继续编辑),依此类推

为了获得更好的UI,我希望在验证中更改文本颜色:

-(BOOL)validateMinValue:(id *)ioValue error:(NSError * __autoreleasing *)outError
{
    ParameterValue * param=*ioValue;
    if(*ioValue==nil || param.internalValue>_data->maxValue)
    {
        if (outError != NULL) {
            NSString *errorString = @"Minimum value must be less than the maximum value.";
            NSDictionary *userInfoDict = @{ NSLocalizedDescriptionKey : errorString };
            *outError = [[NSError alloc] initWithDomain:@"minValue-maxValue"
                                                   code:1
                                               userInfo:userInfoDict];
        }
        _minValueField.textColor=[NSColor redColor];
        return NO;
    }
    _minValueField.textColor=[NSColor whiteColor];
    return YES;
}
问题是,如果用户试图使用无效值离开字段,并且在警报中选择“放弃更改”选项,则该值将被放弃,但textcolor将继续显示为红色(因为系统不会重新验证它知道有效的值)。 有什么建议吗