WebView : menu contextuel

Philippe49Philippe49 Membre
août 2008 modifié dans API AppKit #1
Quand on clique dans un lien dans une webView la nouvelle page est ouverte, tout baigne sans une ligne de code. Cela veut dire qu'il y a quelque part une méthode cachée qui fait le boulot à  notre place. Quand on fait un clic droit, un menu contextuel apparaà®t avec par exemple un item "open link" ou "open link in new window", et là  cela ne marche pas.

Pour rediriger l'action du menuItem, le WebUIDelegate de la WebView peut implémenter la méthode ci-dessous, mais du coup on perd le fonctionnement automatique, et c'est casse-pieds :

- (NSArray *)webView:(WebView *)sender contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems{
for(NSMenuItem * item in defaultMenuItems){
NSLog(@%@ %@",[item target],NSStringFromSelector([item action]));
[item setTarget:self];
[item setAction:@selector(rightClic:)];
}
return defaultMenuItems;
}



Avez-vous une solution pas trop lourde ?

Réponses

  • FloFlo Membre
    juillet 2008 modifié #2
    J'ai trouvé un petit projet sur le site d'apple (un genre de finderLike) qui utilise une webView.

    Si l'on clique droit sur un lien et que l'on fait "open link" la page pointée par le lien s'affiche bien dans la webView à  la place de l'ancienne. L'option "copy link" marche également. L'option "open link in new window" ne marche pas par contre mais je suppose que c'est parcequ'elle n'a pas été prévue dans le traitement...

    Si sa peut t'aider:
    http://developer.apple.com/samplecode/SourceView/SourceView.zip
  • Philippe49Philippe49 Membre
    13:28 modifié #3
    Merci, je regarde cela.
Connectez-vous ou Inscrivez-vous pour répondre.