当选中库存NSTableView的行/单元格时,其背景变为蓝色,并且任何标准NSTextfields文本颜色变为白色。选择封装NSTableView单元格时收到通知?
是否有一个公共API让您在选择封装行视图或单元格视图时收到消息?基本上,我想制作一个自定义视图,当选中行/单元格时,它会改变颜色。
当选中库存NSTableView的行/单元格时,其背景变为蓝色,并且任何标准NSTextfields文本颜色变为白色。选择封装NSTableView单元格时收到通知?
是否有一个公共API让您在选择封装行视图或单元格视图时收到消息?基本上,我想制作一个自定义视图,当选中行/单元格时,它会改变颜色。
表格单元格没有被选中,表格行。 NSTableRowView
有一个selected
属性。
我认为你应该只是依赖你的视图被要求绘制(即被标记为需要显示),而不管它是否被选中。然后它可以查询其封闭行视图的属性,以决定它应该如何绘制。
也就是说,你不应该使用行的selected
属性来决定如何绘制。相反,您经常应该使用该行的interiorBackgroundStyle
。或者,如果您使用NSTableCellView
作为您的手机视图,请检查其backgroundStyle
。在很多情况下,你不必检查;单元格视图会将backgroundStyle
的设置转发到它的子视图,如果它们支持的话。
您可以使用NSTableViewDelegate。你可以使用 tableViewSelectionDidChange。请参考https://developer.apple.com/library/mac/documentation/Cocoa/Reference/NSTableViewDelegate_Protocol/#//apple_ref/occ/intfm/NSTableViewDelegate/tableViewSelectionDidChange:。
感谢您的帮助。所以你只需要添加一个backgroundStyle属性到你的自定义视图中,然后检查它......听起来很优雅。 – 2015-03-03 16:32:38