gpt4 book ai didi

swift - 这是如何在 swift 4 中实现的?

转载 作者:行者123 更新时间:2023-11-28 11:52:30 25 4
gpt4 key购买 nike

我有这个link用于表格 View 中的下拉搜索栏。我能够使用这段代码在 tableview 中实现搜索栏

  searchController.searchResultsUpdater = self 
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = ""
if #available(iOS 11.0, *) {
navigationItem.searchController = searchController
} else {
self.tableView.tableHeaderView = searchController.searchBar
}
definesPresentationContext = true
searchController.searchBar.delegate = self

我现在想实现搜索功能,但是我无法在搜索栏中获取文本值。任何人都可以提供有关如何正确实现的任何提示吗?谢谢。

编辑:

这是 View 显示时隐藏搜索栏的 viewWillAppear 部分。我现在有另一个问题。如果我开始编辑搜索栏,它就会完全从 View 中隐藏起来。如果我删除 searchController.searchBar.delegate = self 那么搜索栏就不会隐藏。

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.tableView.contentOffset = CGPoint(x: 0,y :60.0)
}

最佳答案

我建议使用 UISearchResultsUpdating 协议(protocol),而不是设置 searchController.searchBar.delegate = self

import UIKit

class MyViewController: UIViewController, UISearchResultsUpdating {

override func viewDidLoad() {
let searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = ""
searchController.hidesNavigationBarDuringPresentation = false

if #available(iOS 11.0, *) {
navigationItem.searchController = searchController
} else {
self.tableView.tableHeaderView = searchController.searchBar
}
definesPresentationContext = true
//searchController.searchBar.delegate = self <--- you don't need this
}

func updateSearchResults(for searchController: UISearchController) {
if let searchString = searchController.searchBar.text {
print(searchString)
}
}
}

关于swift - 这是如何在 swift 4 中实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51686056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com