2011-07-17 15 views
6

Me gustaría crear un tipo de widget de escritorio y quiero que sea muy fácil de diseñar a través de HTML/CSS. Decidí usar WebView para esta tarea.Hacer que WebView desde WebKit sea arrastrable con el mouse en Cocoa

Tengo un NSWindow sin bordes con un WebView dentro. Quiero que sea arrastrable con el mouse (como cualquier ventana ordinaria se puede arrastrar usando su título, pero haciendo clic en cualquier lugar dentro de mi WebView). Probé con la subclase WebView y anulé los eventos mouseDown y mouseDragged, pero no funcionó (por razones obvias).

Por supuesto, puedo crear una vista transparente por encima de WebView para resolver el problema, pero realmente quiero encontrar una manera mejor. ¿Alguien sabe cómo lograr eso?

Respuesta

4

El problema se resolvió reemplazando el método - (void)sendEvent: en la subclase de los padres NSWindow, así:

//Overriding mouse events 
- (void)sendEvent:(NSEvent *)theEvent 
{ 
    if ([theEvent type] == NSLeftMouseDown) 
    { 
     [self mouseDown:theEvent]; 
    } 
    else if ([theEvent type] == NSLeftMouseDragged) 
    { 
     [self mouseDragged:theEvent]; 
    } 
    else 
    { 
     [super sendEvent:theEvent]; 
    } 
} 

supongo que esta es la mejor solución.

Cuestiones relacionadas