2017-09-05 10 views
1

J'ai une fenêtre avec 3 NSTableViews et 1 NSCollectionView. La vue de collection affiche des images. Je veux pouvoir sélectionner l'une des images et la supprimer à l'aide de la touche de suppression du clavier, mais je ne peux pas faire en sorte que la collection devienne le premier répondeur. Je peux sélectionner l'une des vues de table et remplacer keyDown pour accepter la saisie au clavier, mais cela ne fonctionne pas avec la vue de collection. J'ai fait cela ailleurs en utilisant makeFirstResponder (_ :) pour forcer le focus sur la collection, mais dans cette application la fenêtre n'avait qu'une vue. Des pensées sur ce que je fais mal?NSCollectionView n'accepte pas les événements clés

Répondre

0

Si vous pouviez sélectionner des images dans la vue de collection ou naviguer dans la vue de collection à l'aide des touches fléchées du clavier, cela signifie généralement que la vue de collection est firstResponder.

Essayez donc d'activer la sélection, vérifiez si la vue de collection est activée.

Il est également possible que la touche de suppression soit Equivalent de clé read more here. Si oui, vous devez remplacer la méthode performKeyEquivalent(with:) pour recevoir ce type d'événements.

La méthode NSCollectionView keyDown(with:) ne transmet pas non plus les événements clés dans la chaîne du répondeur. Pour gérer de tels événements dans sa super vue, vous devez le remplacer en mode Collection en appelant le self.nextResponder?.keyDown(with: event) pour les événements que vous souhaitez gérer par vous-même.