gpt4 book ai didi

swift - 在 NSVisualEffectView 中使用自定义 NSTableRowView 时出现奇怪的文本颜色

转载 作者:搜寻专家 更新时间:2023-10-31 23:10:07 26 4
gpt4 key购买 nike

我在 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
}
}

但是选中行的文字颜色变得奇怪,字体自动变成粗体。见下图:

enter image description here

我也把示例代码放在了 github 上.我的实现有什么问题?如何让选中行的文字颜色和字体粗细与未选中的行一致?

最佳答案

似乎主要问题源于视觉效果 View 的核心动画层。虽然取消选择嵌套 View 的选项可能不是导致故障行为的全部原因:

glitchy visual effect 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 有关)。

enter image description here

删除视觉效果 View 解决了文本问题,但不是真正的解决方案,因为您应该能够使用它。应始终向 Apple 报告错误和故障行为。

关于swift - 在 NSVisualEffectView 中使用自定义 NSTableRowView 时出现奇怪的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43289660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com