如何在iOS 13中使用麦克风图标创建搜索栏?

dan*_*ing 5 accessibility uisearchbar ios ios13

在iOS 13中,所有Apple应用程序中的搜索栏在右侧都有一个麦克风图标,允许语音输入。但是,当我创建系统搜索栏(或UISearchController)时,没有得到麦克风图标。我在Google和SO上进行搜索,但找不到答案-我们可以采用它吗?如果可以,怎么办?

小智 5

一个重要的注意事项是,目前没有一种方法可以以编程方式将用户置于“听写模式”。这意味着要实现这一点,您必须使用该Speech框架才能通过按下按钮来实现“语音到文本”的工作。

您可以通过更新搜索栏书签图标的图像并将showsBookmarkButton搜索栏上的设置设置为 true 来完成视觉样式。

这是一个带有以下内容的实现UISearchController

let searchController = UISearchController(searchResultsController: nil)
let micImage = UIImage(systemName: "mic.fill")
searchController.searchBar.setImage(micImage, for: .bookmark, state: .normal)
searchController.searchBar.showsBookmarkButton = true
Run Code Online (Sandbox Code Playgroud)

您可以通过搜索栏的委托来处理按钮点击:

searchController.searchBar.delegate = self
Run Code Online (Sandbox Code Playgroud)
func searchBarBookmarkButtonClicked(_ searchBar: UISearchBar) {
    // Do work here
}
Run Code Online (Sandbox Code Playgroud)