首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将UISearchBarDelegate扩展名放在单独的文件中?

是否可以将UISearchBarDelegate扩展名放在单独的文件中?
EN

Stack Overflow用户
提问于 2020-01-31 08:40:29
回答 3查看 762关注 0票数 1
代码语言:javascript
复制
extension HomeViewController: UISearchBarDelegate {


    func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
        //code
    }

    func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
         //code     
    }
}

当它在我的HomeViewController底部的时候,它运行得很好。

我想知道我能不能把这个扩展名分开在单独的文件里?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-31 08:48:16

我忘了包括UIKit。

代码语言:javascript
复制
import Foundation
import UIKit

extension HomeViewController {
    func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)        {
      //code
    }

    func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
     //code
    } 
}

另外,您需要在UISearchBarDelegate中继承ViewController,而不是在扩展中。

票数 0
EN

Stack Overflow用户

发布于 2020-01-31 10:05:45

是有可能的.

希望你知道延展在斯威夫特。

Extensions是一个有用的特性,它有助于向现有的ClassStructureEnumerationProtocol类型添加更多功能。这包括为没有原始源代码的类型添加功能。

代码:

代码语言:javascript
复制
class HomeVC: UIViewController {

    var searchBar = UISearchBar()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.searchBar.delegate = self   
    }
}

创建另一个名为HomeVC+SearchBarDelegate的文件

代码语言:javascript
复制
import Foundation
import UIKit

extension HomeVC: UISearchBarDelegate {

    func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
        //code
    }

    func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
         //code
    }
}

我希望这能帮到你。

谢谢

票数 2
EN

Stack Overflow用户

发布于 2020-01-31 09:00:09

你可以像下面这样实现这一点。

代码语言:javascript
复制
viewDidLoad(){
  let searchBar = UISearchBar()
  searchBar.delegate = DelegateFile()
}

创建一个文件。

代码语言:javascript
复制
class DelegateFile: NSObject, UISearchBarDelegate{
    func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
        //
    }
}

然后在单独的文件中实现委托方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60000447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档