Quite often you need to know which control is currently the first responder, for ages i have been rolling the same solution over and over again and I thought it about time that i shared it.
Its basically a category on UIView so you can call:
[self.view findFirstResponder];
Imagine you wanted to make sure the keyboard (or any other editor view) was closed you could:
UIView *firstResponder = [self.view findFirstResponder]; [firstResponder resignFirstResponder];
The code is stupid simple:
UIView+AblebotsAdditions.h
#import @interface UIView (Ablebots) - (UIView *)findFirstResponder; @end
UIView+AblebotsAdditions.m
#import "UIView+AblebotsAdditions.h" @implementation UIView (Ablebots) - (UIView *)findFirstResponder { if (self.isFirstResponder) { return self; } for (UIView *subView in self.subviews) { if ([subView isFirstResponder]){ return subView; } if ([subView findFirstResponder]){ return [subView findFirstResponder]; } } return nil; } @end

