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

Chr*_*ris 21 search ios swift swiftui ios15

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

.searchable(text: $searchText) // This is a modifier under my List view
Run Code Online (Sandbox Code Playgroud)

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

我在苹果文档中找不到任何关于在此搜索栏上禁用自动更正的内容(尽管对于TextField使用.disableAutocorrect(true)修饰符的标准来说很容易做到)。

我使用了 iOS14 的 Swift 包,它提供了一个搜索栏(通过UIViewRepresentable),但如果可能的话,我宁愿使用第一方 API,所以我的问题特别与.searchableiOS 15 中引入的 SwiftUI API 有关。

Sam*_*amB 36

适用于 iOS 15

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

List {
    //
}
.searchable(text: $searchText)
.disableAutocorrection(true)
Run Code Online (Sandbox Code Playgroud)

适用于 iOS 16+

从 iOS 16 开始disableAutocorrection已弃用。所以需要改用autocorrectionDisabled


List {
    //
}
.searchable(text: $searchText)
.autocorrectionDisabled(true) 
Run Code Online (Sandbox Code Playgroud)


小智 6

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

List {
    //
}
.searchable(text: $searchText)
.autocorrectionDisabled(true)
Run Code Online (Sandbox Code Playgroud)