iOS: Add UIResponder helper to get current first responder

Change-Id: I422d45860a52861893d963fabbecd4ac30477272
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This commit is contained in:
Tor Arne Vestbø 2014-08-20 17:03:15 +02:00
parent 7a413fa40c
commit ad120dbf13
2 changed files with 29 additions and 0 deletions

View File

@ -65,4 +65,8 @@ int infoPlistValue(NSString* key, int defaultValue);
QT_END_NAMESPACE
@interface UIResponder (QtFirstResponder)
+(id)currentFirstResponder;
@end
#endif // QIOSGLOBAL_H

View File

@ -141,5 +141,30 @@ int infoPlistValue(NSString* key, int defaultValue)
return value ? [value intValue] : defaultValue;
}
// -------------------------------------------------------------------------
@interface QtFirstResponderEvent : UIEvent
@property (nonatomic, strong) id firstResponder;
@end
@implementation QtFirstResponderEvent
@end
@implementation UIResponder (QtFirstResponder)
+(id)currentFirstResponder
{
QtFirstResponderEvent *event = [[[QtFirstResponderEvent alloc] init] autorelease];
[[UIApplication sharedApplication] sendAction:@selector(qt_findFirstResponder:event:) to:nil from:nil forEvent:event];
return event.firstResponder;
}
- (void)qt_findFirstResponder:(id)sender event:(QtFirstResponderEvent *)event
{
Q_UNUSED(sender);
event.firstResponder = self;
}
@end
QT_END_NAMESPACE