gpt4 book ai didi

ios - 如何访问位于容器 subview 中的 UITextFiled 的 UITextFieldDelegate 方法?

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

我通过 Storyboard 创建了一个容器 View ,并将 UITextField 放置在其中。我可以直接从 Root View Controller 访问 UITableViewController 并设置它的属性,即 containerController?.containerTextField.becomeFirstResponder()。我还可以在根 UIViewController 中实现容器 View Controller 的协议(protocol),但仍然无法强制使用位于 UIContainerView 内部的 UITextField 触发 UITextFieldDelegate 协议(protocol)方法。

这是容器 View Controller 代码的一部分:

class ContainerViewController: UIViewController, UITextFieldDelegate {
var aContainerDelegate = ContainerDelegate?()
@IBOutlet weak var containerTextField: UITextField!
(...)

func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
print("textFieldShouldBeginEditing")
textField.returnKeyType = UIReturnKeyType.Done
return true
}

func textFieldShouldReturn(textField: UITextField) -> Bool {
print("textFieldShouldReturn")
return true
}
}

我尝试在 Root View Controller 中使用或不使用 UITextFieldDelegate 声明 - 它不会改变任何内容。请告诉我,如何访问位于容器 subview 中的 UITextFiled 的 UITextFieldDelegate 方法?提前致谢!

最佳答案

就我而言,我只是忘记在根 Controller 中设置textField.delegate = self。唯一的问题是:第一次访问容器 View 时无法直接设置

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "containerSegue" {
let dest = segue.destinationViewController as! ContainerViewController
containerController = dest
dest.aContainerDelegate = self
}
}

containerTextField 此时似乎尚未初始化,因此 containerTextField.delegate = self 返回异常(nil 值)。我找到了一种解决方法,可以在按钮操作中设置委托(delegate),以显示和隐藏 containerView。

关于ios - 如何访问位于容器 subview 中的 UITextFiled 的 UITextFieldDelegate 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33178244/

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