2014-12-23 7 views
0

У меня есть приложение Mac, которое состоит из окна с переменным количеством панелей в нем, каждый из которых содержит табличное представление. В окне есть панель инструментов с кнопками, и я хочу, чтобы VC для текущей выбранной панели обрабатывал проверку элементов панели инструментов, а также являлся целью их действий.FirstResponder как делегат для NSToolBar

Если бы я мог установить первый ответчик в качестве делегата для панели инструментов, это будет обрабатываться автоматически, поэтому мой вопрос, если это возможно! Я, очевидно, искал эту проблему, и некоторые статьи, похоже, намекают, что это возможно, но IB, похоже, не позволяет мне это делать.

ответ

1

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

То же самое относится к обработчикам интерфейса UI/Menu; оконный контроллер идеально подходит для этого, и ваш дизайн будет хорошо вписываться в него.

Это не имеет никакого отношения к первому ответчику, поскольку вас интересует выбранная панель, а не первый ответчик.

+0

Но не будет ли выбранная панель всегда быть первым ответчиком? Сейчас у меня нет никакой логики для «выбранной панели», и я надеялся избежать этого. Я всегда хочу, чтобы панель, в которой выделенные строки были синими (а не серыми), чтобы получать действия/обратные вызовы, но похоже, что мне тоже нужно будет отслеживать это в WC. – Gusutafu

+0

@Gusutafu Да, вам нужно будет отследить выбранную панель, однако в целом решение будет более условным и прямым, чем то, что вы предлагали. – Droppy

+0

ОК, спасибо за ответ. – Gusutafu