在 SwiftUI 可搜索搜索栏上禁用自动更正

问题描述 投票:0回答:2

我有一个 SwiftUI 和 Core Data 应用程序,并实现了新的 iOS 15 搜索栏 API。

.searchable(text: $searchText) // This is a modifier under my List view

但是,搜索栏具有自动更正功能,当视图消失或用户提交时,它会意外地更改搜索(如果导航到详细视图并返回,甚至会发生这种情况)。总的来说,用户体验很差。

我在 Apple 文档中找不到任何用于在此搜索栏上禁用自动更正的内容(尽管使用

TextField
修饰符对于标准
.disableAutocorrect(true)
来说很容易完成)。

我使用了 iOS14 的 Swift 包,它提供了一个搜索栏(通过

UIViewRepresentable
),但如果可能的话,我宁愿使用第一方 API,所以我的问题特别与 SwiftUI
.searchable
API 相关,该 API 是在 iOS 15 中引入的.

ios swift search swiftui ios15
2个回答
35
投票

适用于 iOS 15

如果您在

disableAutocorrection(true)
之后设置
.searchable(text: $searchText)
,搜索栏的自动更正将被禁用。

List {
    //
}
.searchable(text: $searchText)
.disableAutocorrection(true)

适用于 iOS 16+

从 iOS 16 开始,

disableAutocorrection
已弃用。所以需要用
autocorrectionDisabled
来代替。


List {
    //
}
.searchable(text: $searchText)
.autocorrectionDisabled(true) 

6
投票

disableAutocorrect
将在未来的 iOS 更新中弃用(当前版本:iOS 16.3)。使用
autocorrectionDisabled
代替:

List {
    //
}
.searchable(text: $searchText)
.autocorrectionDisabled(true)
© www.soinside.com 2019 - 2024. All rights reserved.