Делегат NSMatrix

В моем коде есть NSMatrix, в частности, переключатели. Я хотел бы создать делегата для публикации сообщения при изменении выбора переключателя.

Какой делегат мне нужно использовать? Я безуспешно пробовал метод textDidChange. Очевидно, я использовал [radioButtons setDelegate:self] на этапе инициализации приложения.

Спасибо


person Kevin    schedule 18.07.2012    source источник


Ответы (1)


NSMatrix является подклассом NSControl, поэтому вы можете использовать ту же парадигму целевого действия, что и с любым другим NSControl, например с кнопкой.

Вы можете установить цель и действие на NSMatrix с помощью построителя интерфейса (управление перетаскиванием из матрицы в класс) или в коде с setTarget: и setAction:. Затем, когда ячейка в матрице (здесь, переключатель) выбрана, вызывается метод действия, и вы можете запросить, какой переключатель был выбран с помощью метода selectedCell.

См. https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Button/Articles/QueryMatrixButtons.html

person Adam Leonard    schedule 18.07.2012
comment
Я создал IBAction и пытаюсь связать метод IBAction с переключателями. Однако никакой связи не происходит. Любая идея, как я могу установить соединение? Спасибо. - person Kevin; 18.07.2012
comment
Вы должны иметь возможность управлять перетаскиванием из матрицы переключателей в свой класс с помощью IBAction. Если это не сработает, вы также можете найти NSMatrix на боковой панели (вероятно, с надписью Matrix) и управлять перетаскиванием этого текста в свой класс. Также убедитесь, что для кнопочных ячеек не установлены соединения; в противном случае эти действия переопределяют действие, содержащее NSMatrix. - person Adam Leonard; 18.07.2012