KeyEquivalent / Raccourci clavier (Majuscule/Minuscule)

iLandesiLandes Membre
12:00 modifié dans API AppKit #1
Bonjour,

Je bug sur l'utilisation de NSButtonCell.

Je souhaite définir un Key Equivalent (raccourci clavier) pour les éléments de ma classe NSButtonCell par programmation.

Pour le moment j'ai écrit cela :
 
&nbsp; [self setKeyEquivalent:theShortKey];<br />

Cela fonctionne mais le racourci est soit en majuscule soit en minuscule suivant la valeur stockée dans la NSString theShortKey. J'aimerai que cela fonctionne pour A ; a ; (quelque soit l'état de la touche shift et/ou de la touche AlphaShift).

Dans IB si je mets une lettre dans la zone Key Equivalent ça fonctionne à  merveille...

La solution doit se trouver quelque part vers
[self keyEquivalentModifierMask:?????]Mais je ne trouve pas<br />

D'avance merci pour votre aide

Réponses

  • 12:00 modifié #2
    y'a pas un truc du genre NSShiftKeyMask?
  • iLandesiLandes Membre
    novembre 2010 modifié #3
    merci pour la réponse mais NSShiftKeyMask permet simplement de vérifier que la touche Shift est enfoncée (en plus de la lettre définie par setKeyEquivalent)

    je cherche toujours...
  • iLandesiLandes Membre
    novembre 2010 modifié #5
    Merci mais j'avais commencé par lire la doc... Un keyEquivalent ne peut représenter qu'un seul caractère et les flags n'y changent rien.

    En fait je vais utiliser keydown et lowercaseString ou uppercaseString sur le NSEvent.

    Merci de votre aide.
  • laudemalaudema Membre
    12:00 modifié #6
    dans 1289286836:

    Merci mais j'avais commencé par lire la doc...

    ça c'est bien  :D, ça devient rare parfois  >:(
    Pour ce que tu veux faire je ne te suis pas quand tu dis que tes raccourcis claviers associés aux boutons définis dans IB fonctionnent quelque soit la casse. J'ai au contraire vu qu'ils faisaient la différence. A moins que pour un type de bouton particulier ?
    Mais je n'ai vu que des boutons qui réagissent avec la majuscule enfoncée uniquement si on les a définis comme ça dans IB. D'ailleurs quand tu appuies sur Majuscule en même temps que ta lettre pour indiquer ton raccourci il met une petite flèche à  côté de ton modifier (si tu en as mis un), preuve que Cocoa fait la différence. Amha
  • iLandesiLandes Membre
    12:00 modifié #7
    Bonjour,

    En fait ce qui m'avait déstabilisé vient d'Interface Builder (IB). En effet lorsque l'on définit un keyEquivalent dans IB la lettre majuscule s'affiche et j'avais utilisé une lettre majuscule lorsque j'ai voulu définir la valeur de keyEquivalent par programmation. Grave erreur car IB affiche la touche 'A' comme elle apparaà®t sur le clavier mais en fait en programmation c'est le caractère 'a' qui est le déclencheur...

    Merci à  tous pour votre aide

    Cordialement

    beus
  • laudemalaudema Membre
    12:00 modifié #8
    Pout conclure, un peu de littérature documentaire :-)
    http://developer.apple.com/library/mac/#qa/qa2005/qa1446.html

    Modifier keys expectations
    The expectation is that the option and shift keys modify the character code, but the command and control keys do not.


    La touche majuscule est de surcroà®t bien utile car elle double le nombre de raccourcis possibles or  beaucoup sont déjà  utilisés par le Mac

    http://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGUserInput/XHIGUserInput.html#//apple_ref/doc/uid/TP30000361-TPXREF61
Connectez-vous ou Inscrivez-vous pour répondre.