2009-07-01 5 views

Répondre

4

keyDown doit être redéfinie dans une sous-classe NSView dont l'objet est défini comme premier intervenant. La chaîne du répondeur doit transmettre l'événement, mais pour être sûr de l'avoir, assurez-vous que votre objet est le premier répondeur.

+0

Merci beaucoup pour ces précieuses contributions ... –

0

Dans le cacao, seules les vues participent à la chaîne du répondeur pour cet événement. Vous devez donc remplacer une méthode d'affichage. Le plus simple est de savoir quelle vue est le premier répondant pour un événement particulier que vous voulez gérer et utiliser.

fenêtre envoie keyDown(with:) Stright au premier répondeur qui pourrait le gérer ou passer à la chaîne répondeur. Toutes les vues ne transmettent pas les événements. NSCollectionView ne transmet pas l'événement de clé. Il joue un son de bosse à la place.

Il est également possible qu'une clé que vous souhaitez gérer soit un équivalent cléread more here. Si c'est le cas, vous devez remplacer la méthode performKeyEquivalent (avec:) pour recevoir ce type d'événements à la place. Ces événements contrairement aux événements keyDown transmis de la fenêtre à toutes les sous-vues jusqu'à ce que quelqu'un les gère. Comme mentionné ci-dessus, la méthode NSCollectionView keyDown (with:) ne transmet pas les événements clés à la chaîne répondeur. Pour gérer de tels événements dans l'une de ses super vues, vous devez d'abord le remplacer dans la vue de collection et envoyer l'événement manuellement en appelant self.nextResponder? .keyDown (avec: event) pour les événements que vous souhaitez gérer par vous-même.