此代码演示了问题:复选框的聚焦环太大并且在 macOS 14.5 上偏离中心。 (我没有检查其他 macOS 版本。另请注意,这不是 iOS 问题。)
import SwiftUI
@main
struct CheckboxFocusRingBugApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
.windowResizability(.contentSize)
}
}
struct ContentView: View {
@State var text1: String = ""
@State var isOn1: Bool = true
let promptText: String = ""
var body: some View {
VStack(alignment: .leading, spacing: 12) {
HStack(alignment: .top) {
TextField(promptText, text: $text1)
.frame(width: 100)
Toggle("", isOn: $isOn1)
.toggleStyle(.checkbox)
}
}
.padding(16)
}
}
#Preview {
ContentView()
}
是否有一个视图修改器可以纠正这个问题,或者这只是一个明显的错误?
这解决了问题,但出乎意料的是:
Toggle("", isOn: $isOn1)
.toggleStyle(.checkbox)
.focusEffectDisabled() // <-- draws the focus ring correctly?!
发布问题后,我开始浏览其他 SwiftUI 焦点问题。第一个是这样的: SwiftUI:从 macOS 文本字段中删除“聚焦环”突出显示边框
我想知道效果会怎样,希望它能完全去掉对焦环。并非如此。它实际上解决了这个问题......当然,直到苹果纠正了我认为的聚焦环绘图错误。