0

Я пытаюсь получить кнопку, которая помещается в каждую строку таблицы, и удаляет эту строку при нажатии в AppleScriptObjC. То же, что и в Safari, когда вы смотрите список загрузки, рядом с именем загруженного файла есть маленькая кнопка X.Кнопка удаления для каждой строки таблицы в AppleScriptObjC

Я не могу установить привязку метода удаления deleteRow_(sender) в app delegate с кнопкой удаления для работы. У меня есть Array Controller, который заполняет таблицу. Я привязал кнопку к методу, но при нажатии ничего не происходит. Я попытался привязать аргумент каждой кнопки к уникальному значению от data source и установить его цель в app delegate, но он делает кнопку прозрачной и незаметной.

Пожалуйста, помогите, как я могу заставить его работать с использованием AppleScriptObjC и привязок.

+0

Является ли табличное представление основанным или основанным на ячейке? – Willeke

+0

Это точка зрения. – otakon

+0

Целью действия кнопки должен быть делегат таблицы. – Willeke

ответ

0

Благодаря @Willeke, я заметил, что делегата не указано для таблицы. Таблица была привязана к свойству, property tableName : missing value в делегате, но не через выход delegate таблицы.

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

Теперь, когда действие работает, вторая часть этой темы - как получить индекс строки или другую информацию о кнопке, которую я нажал? Я попытался заполнить аргумент значением, взятым из dataSource. Я привязал кнопку к table cell view с objectValue.myValue как object key path и привязку ячейки кнопки к table controller с myValue от object key path. Цель обоих - связывать с тем же делегатом, что и таблица. но вся эта настройка дает мне ошибку. Это связывание выполняется так же, как я привязываю все мои объекты, чтобы заполнить таблицу.

+0

Если вы подключите действие кнопки, строку можно получить с помощью 'rowForView' из NSTableView. Кнопка - отправитель. Если вы подключите действие с помощью привязок, вы можете использовать 'objectValue' в качестве аргумента и использовать этот объект или найти его в данных. – Willeke

+0

Это сработало! еще раз спасибо @Willeke – otakon

Смежные вопросы