我正在尝试通过循环显示主First Responder
及其所有UIView
及其所有SubViews
来找到当前关注的SubViews
nil
1}}通过递归,但我想出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
这看起来是否正确?为什么我在使用它时会看到{{1}}视图?
答案 0 :(得分:2)
如果对subView.getCurrentFirstResponder()
的递归调用实际找到第一响应者,则代码不会返回任何内容。
答案 1 :(得分:0)
试试这个:
for subView: UIView in self.subviews as [UIView] {
if subView.isFirstResponder() {
return subView
}
else {
if let sub = subView.getCurrentFirstResponder() {
return sub;
}
}
}
return nil