2010-09-25 5 views
1

J'ai 5 instances de NSTableView qui ont le même menu contextuel. Quand je reçois le message que le menu a été cliqué j'ai besoin de savoir quelle table l'a envoyé. J'ai vérifié la documentation de NSMenu mais je ne trouve pas un moyen de vérifier lequel des tables a ouvert le menu.Comment savoir quel NSTableView a ouvert un menu contextuel?

Je pense à sous-classer NSTableView et envoyer un message au délégué sur menuForEvent, serait c'est le meilleur moyen?

MISE À JOUR:

Merci Joshua, je, me sers 5 tables pour afficher une planification des tâches de la semaine de 5 jours. Chaque tableau représente un jour de la semaine et j'ai ajouté le menu contextuel pour ajouter et supprimer des tâches. Donc, quand un utilisateur clique sur "ajouter une tâche" un jour de la semaine, j'ai besoin de savoir lequel. Je l'ai fonctionné en sous-classant tableview et en envoyant un message au délégué quand le menu est ouvert. De cette manière, mon contrôleur sait quelle table a été la dernière à appeler le menu. Mais il ne me semble pas que la meilleure implémentation pour obtenir ceci, peut-être est comme vous avez dit que le problème réside sur l'interface utilisateur, qu'en pensez-vous? Jose.

Répondre

1

Je ne vois pas comment obtenir cette information. Les menus ne sont "attachés" à rien; ils sont affichés dans un endroit. Votre -menuForEvent: override peut fonctionner mais il me donne les willies.

Bien que ce ne soit pas une réponse à votre question, j'avoue que ma première réaction est "pourquoi avez-vous plusieurs tables avec exactement le même menu?" Cela me semble plus une question d'assurance-chômage. On pourrait penser qu'un menu contextuel serait assez spécifique au type spécifique de chose (ou de vue) qu'il représente. Cela soulève la question: pourquoi avez-vous 5 vues de table qui ont toutes exactement le même contexte? Si toutes les 5 tables représentent des choses qui sont contrôlées de la même manière par le même contrôleur (probablement), il est fort probable qu'il existe une meilleure façon de représenter votre "collection de choses" que 5 tables séparées. Je fais beaucoup de suppositions, accordées, mais ma curiosité prend le meilleur de moi, je suppose. :-)

Questions connexes