当 searchController 处于活动状态时,UIButton 不起作用?

Posted

技术标签:

【中文标题】当 searchController 处于活动状态时,UIButton 不起作用?【英文标题】:UIButton doesn't work when the searchController is active? 【发布时间】:2020-10-26 14:54:18 【问题描述】:

我正在使用带有搜索控制器的UICollectionViewCompositionalLayout

just like this

问题:

当搜索控制器处于活动状态时,我无法点击部分标题中的 UI 按钮。但是该部分的 GestureRecognizer 工作正常。

当我不搜索任何内容时,它们都可以工作,如果在搜索时点击键盘上的“输入”,按钮就会开始工作。

我做错了什么?

【问题讨论】:

【参考方案1】:

我刚刚找到了解决方案。对于有问题的人: 我是这样添加目标的

let button: UIButton = 
        let button = UIButton(type: .custom)
        button.setTitle("See all", for: .normal)
        button.setImage(UIImage(systemName: "chevron.right", withConfiguration: buttonConfig), for: .normal)
        
        button.addTarget(self, action: #selector(myFunc), for: .touchUpInside)
        
        return button
    ()

删除 addTarget,并将其添加到类的 Init 中可以解决问题。

override init(frame: CGRect) 
    super.init(frame: frame)

    addSubview(button.addTarget)
    button.addTarget(self, action: #selector(myFunc), for: .touchUpInside)

我不知道为什么,但它有效。哈哈

【讨论】:

以上是关于当 searchController 处于活动状态时,UIButton 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

搜索处于活动状态并推送到下一个视图控制器时出现导航栏问题

当且仅当区域在 Emacs 中处于活动状态时,标记是不是处于活动状态?

searchController 在单击搜索项时消失

当应用程序处于活动状态时,iOS 处理推送通知点击

当 UISearchController 处于活动状态时呈现 UIAlertController

当特定的弹簧配置文件处于活动状态时,如何防止运行测试?