【发布时间】:2022-03-09 23:40:47
【问题描述】:
我正在使用 SwiftUI 构建一个 macOS 应用程序,当我右键单击它时,我正在尝试删除(甚至掩盖)添加到 List 项目的边框。
默认情况下,这里是:
现在通过右键单击和 contextMenu 视图修饰符:
我认为这是一个 NSTableView 怪癖,所以我尝试了以下三个 Stack Overflow 帖子中的方法:
- Customize right click highlight on view-based NSTableView
- NSTableView with menu, how to change the border color with right click?
- Disabling the NSTableView row focus ring
-
NSTableView: blue outline on right-clicked rows
我无法让其中任何一个工作,这可能是因为我不能子类化
NSTableView,而只能用extension覆盖它的属性和方法。到目前为止,这是我成功删除默认表格背景等的内容:extension NSTableView{ open override func viewDidMoveToWindow() { super.viewDidMoveToWindow() //Remove default table styles backgroundColor = NSColor.clear enclosingScrollView!.drawsBackground = false selectionHighlightStyle = .none } }有什么方法可以在 SwiftUI 中删除该右键单击边框?我什至愿意用其他视图覆盖它,但我似乎无法在表格单元格周围的空间中绘制 SwiftUI 视图。
-
你能找到解决方案吗?
-
@EuanTraynor 我找到了一种解决方法。我将它作为答案发布,因为它包含一些代码。
标签: swiftui nstableview swiftui-list nstableviewcell nstablerowview