gpt4 book ai didi

swift - 快速禁用委托(delegate)

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

我目前有一个名为 searchTextField 的文本字段。我还有两个名为 firstButtonsecondButton 的按钮。当我点击 firstButton 时,我通过添加相关委托(delegate) searchTextField.delegate=self 在操作方法中启用 Google Places API。

但是,当我点击 secondButton 时,我希望 Google Places API 被禁用,它只是一个普通的文本字段。有没有办法禁用委托(delegate)或其他方法来达到相同的结果?

@IBAction func firstAction(_ sender: Any) {
searchTextField.delegate=self //google autocomplete
}

@IBAction func secondAction(_ sender: Any) {
searchTextField.placeholder = "Search without Google API"
}

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
let autoCompleteController = GMSAutocompleteViewController()
autoCompleteController.delegate = self

let filter = GMSAutocompleteFilter()
filter.type = .establishment
autoCompleteController.autocompleteFilter = filter

self.present(autoCompleteController, animated: true, completion: nil)
return false
}

最佳答案

我想我会采取不同的做法

var googleAPIEnable = false
func viewDidLoad() {
searchTextField.delegate = self
}

@IBAction func firstAction(_ sender: Any) {
googleAPIEnable = false
}

@IBAction func secondAction(_ sender: Any) {
searchTextField.text = nil
searchTextField.placeholder = "Search without Google API"
googleAPIEnabled = true
}

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
guard googleAPIEnabled else {
return true
}

let autoCompleteController = GMSAutocompleteViewController()
autoCompleteController.delegate = self

let filter = GMSAutocompleteFilter()
filter.type = .establishment
autoCompleteController.autocompleteFilter = filter

self.present(autoCompleteController, animated: true, completion: nil)
return false
}

关于swift - 快速禁用委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48356797/

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