WebView : menu contextuel
Philippe49
Membre
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 ?
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 ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
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