WKWebView problème mouseDown

devulderdevulder Membre
mars 2016 modifié dans API AppKit #1

bonjour,


 


petit souci avec ce code:



@interface mybrowser : WKWebView
{

}

@end

@implementation mybrowser

- (NSView *)hitTest:(NSPoint)aPoint
{
NSLog(@hitTest: %@ %@", NSStringFromPoint(aPoint),[NSApp currentEvent]);

return [super hitTest:aPoint];
}

- (void)mouseDown:(NSEvent *)theEvent {

NSLog(@entered mouseDown);

return [super mouseDown:theEvent];
}

-(void)rightMouseDown:(NSEvent *)theEvent {
NSLog(@entered rightMouseDown);
return [super rightMouseDown:theEvent];
}

- (NSMenu *)menuForEvent:(NSEvent *)theEvent {
NSLog(@entered menuForEvent);
return [super menuForEvent:theEvent];
}



je dérive la classe (WKWebView, elle dépend de NSView,NSResponder donc mouseDown est présent)


 


je lance le prog, met une url dans la wkwebview


 


la page s'affiche normalement, par contre quand je clique dessus avec les boutons de la souris


 


je ne récupéres pas les évenement mouseDown,rightMouseDown !


 


heureusement hitTest marche, je peux avec NSApp currentEvent récupérer l'état des boutons


 


mais bon je comprend pas pourquoi mouseDown n'est pas récu ?


Réponses

  • PyrohPyroh Membre
    mars 2016 modifié #2

    Je serai toi je regarderai ce que retourne acceptsFirstMouse.


    Il se peut que la gestion des events soit différente des autres views.


  • WKWebView doit surement être composé de sous-vue (on peut le voir avec Xcode) qui gère ce type d'évènement.


  • PyrohPyroh Membre

    J'ai fait quelques tests et Lexxis a raison. Une WKWebView a plusieurs subViews qui s'occupent déjà  du mouseDown et qui ne le laisse pas passer. Tu vas devoir trouver une autre solution... 


  • ok, merci a vous deux pour les tests


     


    je vais me contenter de hitTest.

Connectez-vous ou Inscrivez-vous pour répondre.