- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在 NSVisualEffectView 中使用自定义 NSTableRowView。我在 CustomTableRowView 中实现了自定义 lightlight 样式,如下所示:
class CustomTableRowView: NSTableRowView {
override func drawSelection(in dirtyRect: NSRect) {
if (self.selectionHighlightStyle != NSTableViewSelectionHighlightStyle.none) {
if self.isEmphasized {
NSColor(calibratedRed: 26.0/255.0, green: 154.0/255.0, blue: 252.0/255.0, alpha: 1.0).setStroke()
} else {
NSColor(calibratedWhite: 0.82, alpha: 1.0).setStroke()
}
let selectionPath = NSBezierPath(rect: dirtyRect)
selectionPath.lineWidth = 3.0
selectionPath.stroke()
}
}
override var interiorBackgroundStyle: NSBackgroundStyle {
return NSBackgroundStyle.light
}
}
但是选中行的文字颜色变得奇怪,字体自动变成粗体。见下图:
我也把示例代码放在了 github 上.我的实现有什么问题?如何让选中行的文字颜色和字体粗细与未选中的行一致?
最佳答案
似乎主要问题源于视觉效果 View 的核心动画层。虽然取消选择嵌套 View 的选项可能不是导致故障行为的全部原因:
此外还有一些其他可能的区域可以调整(例如。tableCellView
):
tableCellView.textField?.stringValue = "aaaaaaaaaaaaaaaa"
tableCellView.textField?.font = NSFont(name: "Menlo", size: 11)
tableCellView.textField?.textColor = NSColor(white: 0.01, alpha: 0.75)
tableCellView.appearance = NSAppearance(named: NSAppearanceNameAqua)
...
我不清楚为什么 View 中的文本看起来变得粗体并且有点过度锯齿,尽管我相信其中一些是视觉效果 View 相关错误的结果(见下文)...
顺便说一下,似乎 Xcode 本身也受到类似行为的影响;在 Xcode Project Navigator 中使用视觉效果 View 后,有时所选项目会变成白色,这看起来一点也不正常。我的结论是这是一个错误(显然与视觉效果 View 有关)。
删除视觉效果 View 解决了文本问题,但不是真正的解决方案,因为您应该能够使用它。应始终向 Apple 报告错误和故障行为。
关于swift - 在 NSVisualEffectView 中使用自定义 NSTableRowView 时出现奇怪的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43289660/
我有一个自定义的 NSTableRowView 实现来显示我的数据单元格。该表还包含使用简单 NSTextField 的组行。 在我的自定义行 View 中,我需要稍微更改底部分隔符的绘制,具体取决于
如果你有一个 tableView 并且想使用 NSTableRowView 的子类,你可以使用委托(delegate)函数 - (NSTableRowView *)tableView:(NSTable
我有一个 NSSplitView,其左侧 Pane 中有一个 TableView 。我注意到,当我在左 Pane 中选择一个项目并将焦点更改到右 Pane 时,左 Pane 会失去焦点,突出显示的行的
我的应用程序中有两个 NSTableView,用户可以将项目从表 A 拖放到表 B。将项目拖动到表 B 时,Xcode 会给我以下布局警告消息: Layout still needs update a
在侧边栏样式大纲 View 中,当我在传递给 outlineView:didAddRowView:row: 的行 View 上将 backgroundColor 设置为白色时,它仅在行的内容。在 su
我已经重写了 NSTableRowView,到目前为止它正在工作。我面临的问题是绘制空行的分隔符。 drawSeparatorInRect:dirtyRect 似乎只覆盖有内容的行,其余所有似乎都填充
我正在尝试在选择表格行时实现自定义行颜色。 -(void)tableViewSelectionDidChange:(NSNotification *)notification{ NSInteg
我想知道如何在 NSOutlineView 中设置所选项目的背景。通过将 SelectionHighlightStyle 设置为 NSTableViewSelectionHighlightStyleS
我正在使用 Storyboard 进行 OSX 开发。我正在使用 NSTableView ,并且不同的 NSTableRowViews 用于此 TableView 的行。这是逻辑- func
我在 NSVisualEffectView 中使用自定义 NSTableRowView。我在 CustomTableRowView 中实现了自定义 lightlight 样式,如下所示: class
当行展开/折叠时,我正在尝试修改我的 NSOutlineView 中使用的自定义 NSTableRowView 的外观。我的 NSOutlineViewDelegate 包括: - (NSTableR
我注意到我的应用程序出现了奇怪的行为,但找不到修复它的方法:我有 NSOutlineView 和自定义 NSTableRowView 并支持拖放。 当我首先在 outlineview 上拖动项目(例如
我有一个基于 View 的 NSTableView,我正在尝试自定义某些行的外观。 我知道我需要实现标题中提到的委托(delegate)方法;但我不知道该怎么做。 文档说: You can use t
我是一名优秀的程序员,十分优秀!