【发布时间】:2012-06-29 20:36:36
【问题描述】:
对于可可,我有一个 NSTableView 设置为基于视图。选择一行后,文本字段的颜色将变为白色。如何保持黑色?
我还应该注意,Highlight 设置为 Source List(它在 Regular 上做同样的事情)。
未选中的行
选中行
我希望类似于 iOS 的状态配置:
这是在 WWDC 2011 Session 120 中提出的,但它有点延迟,所以我不会使用它。不过,它可能对其他人有用。
- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
[tableView enumerateAvailableRowViewsUsingBlock:^(NSTableRowView *rowView, NSInteger row){
NSTableCellView *cellView = [rowView viewAtColumn:0];
if(rowView.selected){
cellView.textField.font = [NSFont boldSystemFontOfSize:14];
}else{
cellView.textField.font = [NSFont systemFontOfSize:14];
}
}];
}
【问题讨论】:
-
谢谢。除非我错过了什么,否则它看起来更像是背景颜色。我已经为我的自定义背景颜色做到了这一点。我正在寻找文本的颜色。
-
取消选择该行时,文本字段的颜色是否会变回?我试图了解这是如何发生的以及为什么会发生。
-
是的,他们变回来了。我相信这是正常的行为。我通常会使用 tableView:willDisplayCell:forTableColumn:row: 来更新文本颜色,所以我想我可以检查行选择并更新 tableView:viewForTableColumn:row: 方法中的文本颜色。但是,我希望在 IB 中找到一个设置,可以用来设置选择颜色,比如如何为 iOS 配置控制状态。
-
您需要在
- (void)tableViewSelectionIsChanging:(NSNotification *)aNotification中执行相同的操作,才能在鼠标选择期间工作。这是你说的延迟吗?
标签: cocoa nstextfield