NSTextField在禁用的时候不能自动变灰,你需要使用secondarySelectedControlColor,目的就是聚焦没有焦点的控件。

如何实现呢?

 
要实现这个功能,继承 NSTextField ,并且重载 setEnabled: 方法来修改颜色。
 
- (void) setEnabled: (BOOL) flag
{
    [super setEnabled: flag];
           
    if (flag == NO) {
        [self setTextColor: [NSColor secondarySelectedControlColor]];
    } else {
        [self setTextColor: [NSColor controlTextColor]];
    }
           
}