我试图通过循环遍历mainFirst Responder和它的所有UIView,并通过递归找到当前的焦点SubViews,但我提出了SubViews

extension UIView {
func getCurrentFirstResponder() -> AnyObject? {
    if self.isFirstResponder() {
        return self
    }

    for subView: UIView in self.subviews as [UIView] {
        if subView.isFirstResponder() {
            return subView
        }
        else {
            subView.getCurrentFirstResponder()
        }
    }
    return nil
}
}

let focusedView = self.view.getCurrentFirstResponder() as? UIView

这看起来正确吗?为什么我使用这个时会得到nil视图?

最佳答案

试试这个:

for subView: UIView in self.subviews as [UIView] {
    if subView.isFirstResponder() {
        return subView
    }
    else {
        if let sub = subView.getCurrentFirstResponder() {
           return sub;
        }
    }
}
return nil

10-07 19:14
查看更多