我正在使用基于视图的NSTableView,并且遇到了一个小问题。NSTableView单元显示问题
我试图在突出显示时将我的两个标签的文本颜色从黑色切换到白色。
要做到这一点,我已经写了下面的代码,
- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
NSView * viewInQuestion = [table viewAtColumn:0 row:[table selectedRow] makeIfNecessary:YES];
if ([viewInQuestion isNotEqualTo:lastViewSelected])
{
[(NSTextField*)lastViewSelected.subviews.lastObject setTextColor:NSColor.blackColor];
[(NSTextField*)[lastViewSelected.subviews objectAtIndex:1] setTextColor:NSColor.grayColor];
}
[(NSTextField*)viewInQuestion.subviews.lastObject setTextColor:NSColor.whiteColor];
[(NSTextField*)[viewInQuestion.subviews objectAtIndex:1] setTextColor:NSColor.whiteColor];
lastViewSelected = viewInQuestion;
}
那伟大工程;我得到这样的结果:
的问题是,有时文本不会出现白色即使一个NSLog的告诉我的NSTextField的颜色是NSCalibratedWhite(或任何它被称为)。
当textField不可见时(滚动离开它然后返回),颜色也会切换回黑色。再一次,即使这样做,NSTextField的颜色仍然记录为白色。
改变你的答案的解决方案,它是不是在所有优化处理背景样式我做的方式。 – evdude100 2016-11-24 03:38:38