ios - 尝试从 subview 获取 UITextField,但获取 UITextfieldLabel

标签 ios swift uitextfield

我有一个包含多个 UITextField 的 View 。 因此,当键盘弹出时,我循环浏览 View 以找出哪个文本字段是第一响应者。

我尝试打印出所有 View 类,它显示 UITextFieldLabel 而不是 UITextField,有人知道这是什么吗?我想找出哪个文本文件获得焦点。

这是我使用的代码。

extension UIView{

    func firstResponder() -> UIView?{
        if self.isFirstResponder()
        {
            return self
        }

        for  view in self.subviews
        {

            if view.isFirstResponder()
            {
                return view
            }
        }

        return nil
    }
}

最佳答案

UITextField 有一个您的 View 可以遵守的协议(protocol)。当选择或编辑文本字段时,您将在委托(delegate)方法中获取该文本字段。

class myView: UIView, UITextFieldDelegate {

    var anExampleTextField: UITextField?         

    override init(frame: CGRect) {
        super.init(frame: frame);
        self.anExampleTextField.delegate = self
    }

    //if using interface builder
    override func awakeFromNib() {
        super.awakeFromNib()
        self.anExampleTextField.delegate = self
    }

    func textFieldDidBeginEditing(textField: UITextField) {
        //The selected textfield will be passed here.
    }
}

关于ios - 尝试从 subview 获取 UITextField,但获取 UITextfieldLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36434139/

相关文章:

iphone - iPhone 5 有图像名称约定吗

ios - 可以在后台线程上从 ASIHTTPRequest/AFNetworking 执行 completionBlock 吗?

ios - 为什么 "dict[String(aUint16)] = Int(Date().timeIntervalSince1970 * 1000)"在某些情况下会失败?

objective-c - 在 Objective-C cocoa 中使用方法

objective-c - 如何重新创建 iMessage 发送按钮和文本字段布局?

iphone - UIScrollView 中 UITextView 中的键盘方向

ios - 消除 UINavigationBar 上栏左侧和 leftBarButtonItem 之间的空间

ios - 如何在不在 zip 目录中创建目录的情况下压缩文件?

swift - 通过 Swift 在 Xcode 中保存和使用用户输入图像

ios - UITextVIew secureTextEntry 不工作