使用标识符/标签 (SWIFT) 从 UIView 获取 UITextField

Posted

技术标签:

【中文标题】使用标识符/标签 (SWIFT) 从 UIView 获取 UITextField【英文标题】:Get UITextField from UIView using an Identifier/Tag (SWIFT) 【发布时间】:2015-11-28 04:36:16 【问题描述】:

我需要知道如何从 ViewController 类访问 UIView 中的特定 UITextField。

我目前的设置是我有 ViewController 链接到 Storyboard 中的视图。我在 nib 中有 UIView,它有 3 个 UITextFields。我使用以下代码加载视图:

TextFieldView = UINib(nibName: "TextView", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as! UIView
self.view.addSubview(TextFieldView)

我可以使用以下代码获取所有三个 UITextField 及其值:

for case let textField as UITextField in TextView!.subviews 
    print(textField.text)

我的问题是如何使用某种标识符或标签获取任何特定 UITextField 的值。假设我有 3 个 UITextField,分别命名为 TextField1、TextField2 和 TextField3。如何获取 TextField2 的值?

【问题讨论】:

重复:***.com/questions/24530459/… 【参考方案1】:

如果你想按类找到它,那么你可以像这样循环:

for view in self.view.subviews 
    if let textField = view as? UITextField 
        print(textField.text!)
    

如果您想通过标签查找,则可以使用@BalajiKondalrayal 所述的viewWithTag

设置文本字段的标签如下:

选择文本字段并设置标签属性。

@IBAction func getAllTextFromTextFields(sender: AnyObject) 
    //Get All Values
    for view in self.view.subviews 
        if let textField = view as? UITextField 
            print(textField.text!)
        
    
    //Get One By One with Tag
    if let txtField1 = self.view.viewWithTag(1) as? UITextField 
        print(txtField1.text!)
    


希望对你有帮助。

【讨论】:

我目前有这段代码,我需要使用 viewWithTag 但我不知道如何在笔尖中设置特定 UITextField 的标签 谢谢,在您发布答案之前我就知道了,但由于您的努力,我给了您复选标记。感谢您花时间解决我的问题。【参考方案2】:

使用 viewWithTag 选项。 试试这个:

if let theTextField = self.view.viewWithTag(yourTagId) as? UITextField 
        print(theTextField.text)
    

目标-C:

UIView *view = [self.view.viewWithTag:YourTagId];

if([view isKindOfClass:[UITextField class]]
 NSLog(@"%@", view.text);

【讨论】:

如何在笔尖内设置 UITextField 的标签? 你能把它转换成 Objective C 吗? 在你的目标c代码中,它应该是[self.view viewWithTag:YourTagId]; 而不是[self.view.viewWithTag:YourTagId];

以上是关于使用标识符/标签 (SWIFT) 从 UIView 获取 UITextField的主要内容,如果未能解决你的问题,请参考以下文章

如何获得根据标签内容动态变化的 UIView 的高度 - Swift

使用 Swift 以编程方式将 UIView 中的标签和图像居中对齐

在 UITableviewcontroller Swift 顶部带有标签的 UIView

使用 Swift 在 Xcode 6 中使用 xib 在自定义 uiview 中获取 SIGABRT

UIView 动画 swift 4 Xcode9 的问题

如何在标签中打印uiview(swift3)