Skip to content

Instantly share code, notes, and snippets.

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;

This comment has been minimized.

Copy link

@rubensmachion rubensmachion commented Sep 22, 2015

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


This comment has been minimized.

Copy link
Owner Author

@steipete 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.


This comment has been minimized.

Copy link

@aceontech 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.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.