Reemplace UIWindow

Estoy usando phonegap para desarrollar aplicaciones web a través de js, pero necesitaría cierta funcionalidad que solo se puede hacer en el objective c. En detalle quiero registrar toques en la vista web, para activar el cierre automático de vistas superpuestas. Buscar en Google para "detectar toques" muestra la solución de que se debe subclasificar UIWindow y sobrescribir sendEvent para detectar si se tocó una vista deseada.

Esto funciona bastante bien, pero noté que el directory telefónico ya asignará y configurará una instancia de UIWindow en su código, por lo que no puedo usar la UIWindow subclasificada. Por lo tanto, encontré que esta solución funcionaba:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { bool res= [super application:application didFinishLaunchingWithOptions:launchOptions]; // ok, now this part is kind of ugly // replace normal UIWindow with tap-detection enabled version [self.viewController.view removeFromSuperview]; CGRect screenBounds = [ [ UIScreen mainScreen ] bounds ]; TapDetectWindow* tapWindow= [[[TapDetectWindow alloc] initWithFrame:screenBounds] autorelease]; tapWindow.tapDelegate= self.logic; tapWindow.targetView= self.webView; self.window = tapWindow; self.window.autoresizesSubviews = YES; [self.window addSubview:self.viewController.view]; [self.window makeKeyAndVisible]; return res; } 

Si bien esto funciona como un encanto (sin efectos secundarios todavía), me preguntaba si este sería un buen enfoque, o si voy a romper cualquier cosa mediante la sustitución de la UIWindow después de que ya se configuró y se hizo visible … ?