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

     2023-03-04     52

关键词:

【中文标题】这是如何在 swift 4 中实现的?【英文标题】:How is this implemented in swift 4? 【发布时间】:2018-08-04 13:25:33 【问题描述】:

我有这个link 用于表格视图中的下拉搜索栏。我能够使用此代码在 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

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

编辑:

这是 viewWillAppear 部分,用于在视图显示时隐藏搜索栏。我现在有另一个问题。如果我开始编辑搜索栏完全隐藏在视图中。如果我删除searchController.searchBar.delegate = self,那么搜索栏将不会隐藏。

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

【问题讨论】:

请阅读Ray Wenderlich UISearchController tutorial 我无法在搜索栏中获取文本值。 ?你没有得到什么? 我正在尝试从 func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) 打印 searchText。我在这里什么也得不到 我会读它。谢谢 @jiren 您是否将 searchController.searchResultsUpdater 设置为您的 ViewController? 【参考方案1】:

我建议使用UISearchResultsUpdating 协议,而不是设置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)
        
    

【讨论】:

谢谢。我现在可以获取 searchString 但是我不确定为什么当我单击编辑搜索栏时搜索栏会自动隐藏。 @jiren 尝试将此添加到您的 searchController:searchController.hidesNavigationBarDuringPresentation = false 让我知道它是否有帮助,然后我可以编辑我的答案。 这完成了@Teetz 的工作。非常感谢 @jiren 很高兴我能帮上忙。编辑了我的答案并添加了这一行。

隐写术是如何在php中实现的

...这个已实现...或者是否可以在php中使用它【问题讨论】:这是一个非常广泛的问题,并且没有很好地分类。请添加适当的标签(PHP等)。你能解释 查看详情

如何停止在共享库中实现的阻塞 pthread_join()

...用了一个函数。不幸的是,被调用的函数阻塞了主线程,这是由.so库中的pthread_join()引起的。由于它在库中,这是我无法控制的,我正在徘徊如何打 查看详情

swift纯粹的swift中实现的极简主义响应链(代码片段)

查看详情

调用 Swift 协议扩展方法而不是子类中实现的方法

】调用Swift协议扩展方法而不是子类中实现的方法【英文标题】:Swiftprotocolextensionmethodiscalledinsteadofmethodimplementedinsubclass【发布时间】:2017-11-2522:59:13【问题描述】:我遇到了以下代码(Swift3.1)中解释的问题:protocolMyProtocolfuncm... 查看详情

如何在 Swift 中实现 NSWindowRestoration?

...永远不会在应用程序启动时被调用。谁能指出我的错误?这是代码的 查看详情

如何使用原生崩溃报告在 Swift 4 中实现异常/错误处理?

】如何使用原生崩溃报告在Swift4中实现异常/错误处理?【英文标题】:HowtoimplementException/ErrorHandlinginSwift4withnativeCrashReporting?【发布时间】:2019-01-1107:51:32【问题描述】:我想在我的iOSSwift4代码中实现原生崩溃报告(不推荐使用... 查看详情

有限自动机是如何在代码中实现的?

】有限自动机是如何在代码中实现的?【英文标题】:Howarefiniteautomataimplementedincode?【发布时间】:2016-05-1806:57:07【问题描述】:如何在Python代码中实现DFA或NFA?在Python中有哪些好的方法可以做到这一点?它们是否曾在现实世界... 查看详情

命令建议是如何在 bash shell 中实现的?

】命令建议是如何在bashshell中实现的?【英文标题】:Howisthecommandsuggestionimplementedinthebashshell?【发布时间】:2016-06-1306:26:33【问题描述】:gk@Jarvis:~$sudiNocommand\'sudi\'found,didyoumean:Command\'sudo\'frompackage\'sudo-ldap\'(universe)Command\ 查看详情

java示例代码_多捕获是如何在Java 7中实现的

java示例代码_多捕获是如何在Java 7中实现的 查看详情

如何在 inputAccessoryView [Swift] 中实现滚动视图

...图中添加一个滚动视图,并启用2个子视图并启用分页。这是我所做的,我认为问题是限 查看详情

Java varargs 是如何在内存中实现的

】Javavarargs是如何在内存中实现的【英文标题】:HowareJavavarargsimplementedinthememory【发布时间】:2019-01-1108:32:56【问题描述】:据我所知,本地变量和参数存储在堆栈内存中,其中包括对象引用,而实际对象存储在堆内存中。那么... 查看详情

fseek() 是如何在文件系统中实现的?

】fseek()是如何在文件系统中实现的?【英文标题】:Howisfseek()implementedinthefilesystem?【发布时间】:2011-01-2704:37:48【问题描述】:这不是一个纯粹的编程问题,但是它会影响使用fseek()的程序的性能,因此了解它的工作原理很重要... 查看详情

如何在 TypeScript 中实现的接口中进行构造函数重载?

】如何在TypeScript中实现的接口中进行构造函数重载?【英文标题】:HowcanIdoconstructoroverloadinginaimplementedinterfaceinTypeScript?【发布时间】:2016-08-0203:24:09【问题描述】:我试图重载实现接口的类的构造函数,但出现以下错误:[0]app/... 查看详情

谁能解释一下“->”是如何在#define 中实现的

】谁能解释一下“->”是如何在#define中实现的【英文标题】:cananyoneexplainhowthe"->"isimplementedinthe#define【发布时间】:2021-02-1716:02:52【问题描述】:我正在使用这条线作为#define进行参考设计#defineMEDIA_EXT_STATE"\\"adv761112-0... 查看详情

在 MATLAB 中实现的基本 SVM

...个程序在RBF(gaussianKernel())上不能正常工作,我想修复它。这是一个非线性SVM演示,用于说明使用硬边距应用对2类进行分类。问题是关于二维径向随机分布数 查看详情

如何知道在 swift 4 中实时 Firebase 的 childChanged 事件类型中更新了哪个子子项

】如何知道在swift4中实时Firebase的childChanged事件类型中更新了哪个子子项【英文标题】:HowtoknowwhichsubchildisupdatedinchildChangedeventtypeofrealtimefirebaseinswift4【发布时间】:2019-02-2312:30:48【问题描述】:假设我的Firebase实时数据库有子名... 查看详情

如何在 OpenCV 中实现的 Canny 边缘检测算法中选择最佳参数集?

】如何在OpenCV中实现的Canny边缘检测算法中选择最佳参数集?【英文标题】:HowcanIselectthebestsetofparametersintheCannyedgedetectionalgorithmimplementedinOpenCV?【发布时间】:2014-02-1423:47:33【问题描述】:我正在Android平台上使用OpenCV。在这个社... 查看详情

在 UICollectionViewController (Swift 4) 中实现 UISearchBarController?

】在UICollectionViewController(Swift4)中实现UISearchBarController?【英文标题】:ImplementUISearchBarControllerwithinUICollectionViewController(Swift4)?【发布时间】:2018-03-2217:33:39【问题描述】:我正在尝试在UICollectionViewController中实现UISearchBarCon 查看详情