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

我有一个使用验证绑定的NSTextField - 如果该值无效,该设置永远不会被调用; 如果用户试图以无效值离开该字段,则应用程序将显示具有2个选项的错误警报(放弃或继续编辑),等等......

为了获得更好的用户界面,我想在验证中更改文本颜色:

-(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将继续为红色(因为系统不会重新启动)验证它知道有效的值)。 有什么建议么?

链接地址: http://www.djcxy.com/p/85253.html

上一篇: Change NSTextField text color, based on validation (bind)

下一篇: Wait for user close window to get values from NSTextField