gpt4 book ai didi

swiftui - 在 SwiftUI 中隐藏 Picker 在 watchOS 上的焦点边框

转载 作者:行者123 更新时间:2023-12-01 23:37:41 36 4
gpt4 key购买 nike

我需要使用选择器 View ,但我没有看到任何隐藏绿色焦点边框的选项。

代码:

@State private var selectedIndex = 0
var values: [String] = (0 ... 12).map { String($0) }

var body: some View {
Picker(selection: $selectedIndex, label: Text("")) {
ForEach(0 ..< values.count) {
Text(values[$0])
}
}
.labelsHidden()
}

Screenshot of the Picker

最佳答案

以下扩展在选择器边框上放置了一个黑色覆盖层。

结果

Screenshot of the result

代码

extension Picker {
func focusBorderHidden() -> some View {
let isWatchOS7: Bool = {
if #available(watchOS 7, *) {
return true
}

return false
}()

let padding: EdgeInsets = {
if isWatchOS7 {
return .init(top: 17, leading: 0, bottom: 0, trailing: 0)
}

return .init(top: 8.5, leading: 0.5, bottom: 8.5, trailing: 0.5)
}()

return self
.overlay(
RoundedRectangle(cornerRadius: isWatchOS7 ? 8 : 7)
.stroke(Color.black, lineWidth: isWatchOS7 ? 4 : 3.5)
.offset(y: isWatchOS7 ? 0 : 8)
.padding(padding)
)
}
}

用法

确保 .focusBorderHidden()first 修饰符。

Picker( [...] ) {
[...]
}
.focusBorderHidden()
[...]

关于swiftui - 在 SwiftUI 中隐藏 Picker 在 watchOS 上的焦点边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65361173/

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