Как сделать настраиваемый редактируемый столбец таблицы в капучино - PullRequest
0 голосов
/ 03 января 2012

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

При просмотре CPTableView я вижу, что есть поддержка CPTextFields и CPButtons, но я не уверен, как использовать какой-либо другой элемент управления, чтобы разрешить встроенное редактирование значений.

Любая помощь в этом была бы великолепна.

1 Ответ

0 голосов
/ 03 января 2012

Вы можете легко добавить ползунок в табличное представление, например:

var dataColumn = [[CPTableColumn alloc] initWithIdentifier:"Slider"];
[table addTableColumn:dataColumn];
[[dataColumn headerView] setStringValue:"Slider (Editable)"];
[dataColumn setEditable:YES];
[dataColumn setWidth:140];
[dataColumn setDataView:[[CPSlider alloc] initWithFrame:CGRectMakeZero()]];

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

К сожалению, как вы заметили, поскольку ползунок не является кнопкой, таблица не будет отправлять tableView:setObjectValue:forTableColumn:row: сообщений для него.Вы можете создать подкласс CPSlider, чтобы он возвращал YES в isKindOfClass:[CPButton class].

Это справедливо выглядит как хак, поэтому для лучшего долгосрочного решения посмотрите, как Cocoa обрабатывает ячейку CPSlider.Если Cocoa отправляет tableView:setObjectValue:forTableColumn:row: для ползунка, отправьте запрос Feature и включите свое небольшое тестовое приложение Cocoa, чтобы продемонстрировать его.Капучино в этих вопросах стремится работать так же, как и какао.

...