首页 > 解决方案 > watchOS 自动对焦上的 SwiftUI Picker

问题描述

我正在使用 SwiftUI(部署目标 - watchOS 6.0)构建 watchOS 应用程序。我对 Picker 的注意力有些问题。当我使用数字表冠从下到上滚动屏幕时,它会自动聚焦,这会导致在屏幕滚动停止后(达到最大顶部位置),表冠开始自动操纵 Picker 的值,我想避免这种情况。

这是预期的行为吗?有什么解决方法,如何禁用这种自动对焦?由于部署目标需要为 watchOS6,因此目前还没有可用的焦点 API。

我附上了代码片段来向你展示我是如何使用那个特定的 Picker 的。

var body: some View {
    List {
        Section(header: Text("Zones")) {
            VStack(alignment: .leading) {
                Text("Max BPM")
                Picker("Max BPM", selection: $settingsViewModel.maxBpm) {
                    ForEach(SettingsViewModel.kMinimumBpm..<SettingsViewModel.kMaximumBpm + 1) { bpm in
                        Text(String(bpm)).tag(bpm)
                    }
                }
                .frame(height: 25)
                .labelsHidden()
                .pickerStyle(WheelPickerStyle())
            }
        }
    // Other views
    }
}

标签: swiftswiftuifocuspickerwatchos

解决方案


推荐阅读