【发布时间】:2020-09-05 18:01:48
【问题描述】:
在 SwiftUI 中,如何更改将弹出框连接到其锚点的箭头的颜色?
在使用 SwiftUI 之外的底层 UIPopoverController 时,我相信它是通过更改 backgroundColor 属性来完成的,但我在这里看不到访问它的方法。即使将background 设置为最后一个修饰符,也只会更改弹出框内 中的视图;不是弹出框本身。
例如,将以下代码添加到视图中:
@State private var showDetailedView: Bool = false
// ...
.popover(isPresented: self.$showDetailedView) {
Text("Hello!")
.padding()
.background(Color.red)
}
.onTapGesture {
self.showDetailedView = true
}
...导致仍然是默认背景颜色的箭头(此示例取自暗模式下的原生 macOS):
...像这样在 iOS 上(通过 Catalyst 运行),更糟糕!
【问题讨论】:
-
目前无法测试,但您是否为 .popover 尝试了 .accentColor(Color.red)?
-
不幸的是,这对 iOS 上的箭头颜色没有影响,而在 macOS 上,它只是导致错误:“'accentColor' 在 macOS 中不可用 "。
标签: ios macos formatting swiftui popover