gpt4 book ai didi

ios - 当 UI 元素包含在另一个 Nib 中时,如何使 UI 元素与同级(单独的 Nib )一样发挥良好作用?

转载 作者:行者123 更新时间:2023-11-29 05:06:22 24 4
gpt4 key购买 nike

我有一个 Nib (Nib #1),定义了一个自定义 UITableViewCell,其中有一个 UITextField。这个 Nib 的文件所有者是一个通用的 UIViewController,因此我可以在任何 VC 中实例化。

我有另一个 Nib ( Nib #2),它包含一个UIButton,它连接到文件所有者中的IBAction。这是一个特定的 UIViewController 实例,我们称之为 FormViewController

这两个 Nib 都连接到 FormViewController

这是我的问题。

我有一个 UITableView,其中有两个 Nib #1 实例。当我单击相应的 UITextField 元素时,会触发 UITextFieldDelegate 方法,例如 textFieldDidEndEditing: 。但是,如果我单击 Nib #2 中的 UIButton,则不会调用 UITextFieldDelegate 方法。 为什么它们没有被触发?是因为这些UIView有不同的文件所有者吗?我该如何解决这个问题?

可能的相关问题:why is textFieldDidEndEditing: not being called?

最佳答案

当 UITextField 放弃“firstResponder”状态时,将触发 textFieldDidEndEditing: 方法。

当您点击成为新的firstResponder的另一个对象(例如另一个UITextField)时,UITextField会自动退出firstResponder。

由于 UIButton 在点击时不会成为firstResponder,因此您需要在 UITextField 上调用“resignFirstResponder”才能触发 textFieldDidEndEditing:

如果您不知道在您的 View 上调用 endEditing: 的第一个响应者是谁,可以通过一种简单的方法来实现此目的。

“导致 View (或其嵌入文本字段之一)放弃第一响应者状态。” -苹果文档

示例:

  • (IBAction)buttonTapped:(UIButton *)发送者{

    [self.view endEditing:YES];}

关于ios - 当 UI 元素包含在另一个 Nib 中时,如何使 UI 元素与同级(单独的 Nib )一样发挥良好作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4994623/

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