【问题标题】:How to find the value changes of subviews of UIView in iOS如何在iOS中查找UIView子视图的值变化
【发布时间】:2017-05-23 09:05:22
【问题描述】:

我有一个 UIView,其中包含多个 UITextFields、UIButtons,我需要知道这些子视图中的任何一个值是否已更改。例如,在 UITextFields 的情况下,有一个类似 textFieldDidChange 的函数:(UITextField *)theTextField。如果任何 UITextFields 的文本有任何变化,此函数将通知我们。像,如果 UIVIew 中的任何子视图有值变化,有什么方法可以得到通知?请帮帮我。

【问题讨论】:

  • 指定你需要观察哪种子视图?是自定义 UIView 类还是 UISwitch 或 UISlider 之类的?
  • 像 UITextFields、UIButton
  • 如果您想观察在该子视图中所做的所有更改,您可能必须指定类型并观察所有类型并委托回主视图,没有 1 行方法可以做这个
  • 好的,谢谢@Tj3n

标签: ios objective-c iphone uiview


【解决方案1】:

您可以将 tag 用于按钮和文本字段,并使用标签轻松识别哪个文本字段的值已更改。例如,由于您的 textField 是 UIView 的子视图,您可以像这样从特定的 textField 检索文本。

NSString *text = ((UITextField*)[YourView viewWithTag:result]).text;

对于按钮,为 allButtons 维护一个 buttonAction 并使用标签抓取按钮点击。

- (IBAction)buttonClicked:(id)sender {
    if(sender.tag == 1) {
            //Do something.
      }    
}

【讨论】:

  • 不不,实际上我需要知道任何子视图的值/状态是否已更改。例如,我有一个包含 UITextFields、UIButtons、UISwitch 等的视图,当更新该视图时,我需要在视图中是否进行任何更改。那就是更改任何 UITextFields 值或单击任何类似的按钮。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-07
  • 2022-01-25
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多