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

thtygnil  于 2023-03-11  发布在  Swift
关注(0)|答案(2)|浏览(133)

我需要知道如何从ViewController类访问UIView中的特定UITextField。
我目前的设置是,我有一个链接到故事板中的视图的ViewController。我有一个有3个UITextFields的Nib中的UIView。我使用以下代码加载视图:

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的值?

fjnneemd

fjnneemd1#

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

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

如果你想通过标签查找,那么你可以使用viewWithTag,如@BalajiKondalrayal所述。
设置文本字段的标签,如下所示:

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

@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!)
    }

}

希望对你有帮助。

g6baxovj

g6baxovj2#

使用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);
}

相关问题