[résolu] Activer cmd + V par programmation dans un NSTextField
mybofy
Membre
Bonjour
Il est possible d'utiliser cmd + V dans un NSTextField si le menu Edit existe et n'est pas hidden.
Est-il possible d'activer cmd + V par programmation sans menu Edit ?
Je ne vois pas pourquoi ce ne serait pas possible, puisque ça l'est via le menu Edit.
Mais je n'ai pas le début d'une piste.
Problème : l'implémentation du menu Edit n'est pas visible, au moins pour moi.
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il ne faut pas chercher à reproduire / activer cmd+V par programmation.
Il ne faut pas chercher à activer le menu edit.
Il faut te poser la question de la finalité de ce que tu veux faire.
En l'occurrence, l'action que tu veux faire, c'est "coller le contenu du presse-papiers".
Donc il faut chercher comment récupérer/coller le contenu du presse-papiers. Donc chercher autour du terme "Pasteboard" puisque c'est le nom en anglais du presse-papiers.
Donc on cherche Pasteboard sur google, et on trouve :
- Le concept de Pasteboard expliqué dans la DevPedia Apple (bon c'est pour iOS mais les concepts sont grosso modo les mêmes
- Le Pasteboard Programming Guide dans la doc Apple (et ça c'est pour Mac) avec tous les concepts écrits, les exemples de code et tout.
Bon, est-ce que je me trompe en disant que cmd + V doit être déclaré avec un NSMenu ? Sans quoi il est inopérant.
Et qu'il faut passer à Quartz Event pour gérer plus finement les touches du clavier ? Si c'est bien le cas, c'est trop compliqué pour moi.
Je vais informer mes utilisateurs qu'ils peuvent remplir un champ en y faisant un clic droit > Paste.
Merci
Oui, si tu veux utiliser un cmd+v, il doit être déclaré dans un menu, même si ce menu n'est pas affiché. Ou comme équivalent clavier d'un bouton, même invisible. L'idée étant de connecter ce menu/bouton à l'aide d'une IBAction.
Quant à Quartz Event, je ne vois pas ce qu'il vient faire ici. Il s'agit d'events gérées par la bibliothèque Appkit.
Maintenant, si tu veux préremplir un champ via le Pasteboard (si j'ai bien compris) tu peux agir sur la @property reliée à ton TextField, en la mettant à la valeur récupérée dans le Pasteboard.
Aligator, je pense qu'on sèche sur la phrase obscure:
...
Comme je l'ai déjà expliqué plus haut, faut pas aborder le problème façon "je veux activer le menu Edit>Paste" mais façon "je veux coller le contenu du presse-papier", puisqu'au final c'est ça qu'on veut. Tout comme si tu veux exécuter le code d'un bouton, tu cherches pas à simuler un clic souris aux coordonnées où se trouve le bouton ou un truc saugrenu comme ça, tu executes juste le code du bouton.
L'implémentation du menu Edit n'est pas visible, certes, mais je vous ai dit à quoi elle ressemblait : à du code qui va coller le contenu du presse papier. Et j'ai fourni les liens qui expliquent les concepts de presse-papiers / NSPasteboard et les codes qu'il faut pour l'implémenter, donc bon...