我试图通过循环遍历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