2013-03-11 1 views
0

Итак, кнопка идентифицируема?Является ли созданный NSButtonCell уникальным?

Мне нужно идентифицировать ячейку-хлопок (Button Cell) в NSTableView, чтобы определить, было ли оно уже нажато. Таблица всегда может изменяться с помощью ввода пользователем. Моя яркая идея заключается в том, что если созданная кнопка (кнопочная ячейка) была уникальной, она была бы идентифицируемой. Это возможно?

ответ

1

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

Похоже, что в вашем случае у вас есть NSButtonCell, и вы хотите узнать, какая строка была нажата. Вы можете определить, какая строка была нажата, проверяя свойство clickedRow вида таблицы в методе действия ячейки кнопки. The answer to this question объясняет, как это сделать.

+0

дайте мне секунду, чтобы проверить это ... – JFS

+0

Да, это «NSButtonCell». Метод 'clickedRow' работает для меня. Но правильно ли, что число определенной строки изменится с удалением/добавлением строк выше? – JFS

+0

Это правильно. Я бы хотел вернуться к источнику данных таблицы и использовать индекс строки для извлечения объекта, который представляет строка. Это должно дать вам данные, необходимые для обращения к кнопке. – Alex

1

Ну, пока эти кнопки являются подклассами UIView, в которых находятся UIButtons, вы можете использовать поле тега для переноса числовой информации. Установите button.tag в celForRowAtIndexPath в indexPath.row, и вы можете получить тег в методе IBAction, чтобы кнопка была нажата при нажатии.

+0

Hallo Hermann, danke для ответа. Кнопки соты - это подклассы класса NSButtonCell (для osx). У вас есть фрагмент кода, как использовать 'cellForRowAtIndexPath' для создания тега? – JFS

+0

Извинения. Я упустил из виду, что это связано с базой OS-X. Очевидно, я действительно не читал и думал, что это связано с iOS. Нет, я не могу помочь с OS-X. –

+0

Однако, спасибо. – JFS