2010-09-25 3 views
1

У меня есть экземпляры NSTableView, которые имеют одно и то же контекстное меню. Когда я получаю сообщение о том, что меню было нажато, мне нужно знать, какая таблица его отправила. Я проверил документацию NSMenu, но я, похоже, не нашел способ проверить, какие из таблиц открыли меню.Как узнать, какой NSTableView открыл контекстное меню?

Я думаю о подклассе NSTableView и отправке сообщения делегату на menuForEvent, это лучший способ?

UPDATE:

Благодаря Иисус, я, я использую 5 таблиц для отображения планирования недели задач на 5 день. Каждая таблица представляет собой недельный день, и я добавил контекстное меню для добавления и удаления задач. Поэтому, когда пользователь нажимает «добавить задачу» в течение недели, мне нужно знать, какой из них. У меня есть работа по подклассу tableview и отправка сообщения делегату при открытии меню. Таким образом, мой контроллер знает, какая из таблиц была последней, чтобы вызвать меню. Но мне не кажется, что это лучшая реализация, возможно, это похоже на то, что вы сказали, что проблема заключается в пользовательском интерфейсе, что вы думаете? Хосе.

ответ

1

Я не вижу способа получить эту информацию. Меню не привязаны ни к чему; они отображаются в определенном месте. Ваш -menuForEvent: переопределение может работать, но оно дает мне завещания.

Хотя это не ответ на ваш вопрос, я признаюсь, что моя первая реакция «почему у вас несколько таблиц с точно таким же меню?» Это больше меня поражает как пользовательский интерфейс. Можно было бы подумать, что контекстное меню было бы довольно специфичным для конкретного вида вещи (или ее представления), которое она представляет. Это вызывает вопрос: почему у вас есть 5 табличных представлений, которые имеют точно такой же контекст? Если все 5 таблиц представляют вещи, которые контролируются одинаковым образом (предположительно) одним и тем же контроллером, весьма вероятно, что есть лучший способ представить вашу «коллекцию вещей», чем 5 отдельных таблиц.

Я делаю много предположений, предоставленных, но, по-моему, мое любопытство становится лучшим из меня. :-)