Skip to content

Instantly share code, notes, and snippets.

@edwardean
Created March 1, 2017 09:28
Show Gist options
  • Save edwardean/bb43de276619a7f6d65b68c3159f2e72 to your computer and use it in GitHub Desktop.
Save edwardean/bb43de276619a7f6d65b68c3159f2e72 to your computer and use it in GitHub Desktop.
iOS Get FirstResponder
//////////////////////////////////////////////////
@implementation UIView (FirstResponder)
- (UIView *)findFirstResponder {
if (self.isFirstResponder) {
return self;
}
for (UIView *subView in self.subviews) {
UIView *firstResponder = [subView findFirstResponder];
if (firstResponder != nil) {
return firstResponder;
}
}
return nil;
}
@end
//////////////////////////////////////////////////
import UIKit
private weak var _currentFirstResonder: AnyObject?
extension UIResponder {
static func findFirstResponder() -> AnyObject? {
_currentFirstResonder = nil
UIApplication.shared.sendAction(#selector(UIResponder._findFirstResponder(_:)), to: nil, from: nil, for: nil)
return _currentFirstResonder
}
@objc private func _findFirstResponder(_ sender: AnyObject?) {
_currentFirstResonder = self
}
}
@Ferdzz
Copy link

Ferdzz commented Jul 6, 2018

Should be _currentFirstResponder, not _currentFirstResonder

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment