Instantly share code, notes, and snippets.

Embed
What would you like to do?
Getting the first responder... Unless you want to use the private [view firstResponder] this seems to be the only legal way. Or am I wrong?
UIView *PSPDFFindFirstResponderBeneathView(UIView *view) {
// Stop if e.g. we show an UIAlertView with a text field.
if (UIApplication.sharedApplication.keyWindow != view.window) return nil;
// Search recursively for first responder.
for (UIView *childView in view.subviews) {
if ([childView respondsToSelector:@selector(isFirstResponder)] && childView.isFirstResponder) return childView;
UIView *result = PSPDFFindFirstResponderBeneathView(childView);
if (result) return result;
}
return nil;
}
@iottirubin

This comment has been minimized.

iottirubin commented Sep 22, 2015

Hi I would like you my implementation for getting first Responder. Thanks

https://github.com/iottirubin/findFirstResponder

@steipete

This comment has been minimized.

Owner

steipete commented Jun 21, 2016

@iottirubin your method seems a bit wasteful and ignores multiple windows. See the StackOverflow link above for a faster, more generic variant.

@aceontech

This comment has been minimized.

aceontech commented Sep 19, 2017

Hi @steipete,

Just wanted to make sure, the link you provided makes use of the "findFirstResponder" action.. Is this not a private API? I can only find mention of it in Apple's macOS documentation, not iOS.

Thx!
Alex

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