Вопрос

У меня есть обычай NSCell (На самом деле подкласс NSTextFieldCell), который используется как в отдельном редакторе, так и в NSTableColumn (связано с основными данными через NSArrayController) Когда пользователь меняет значение, я звоню -[NSCell setObjectValue:] обновить значение (это NSNumber) Это работает в отдельном редакторе, так как, когда это сделано вручную, обновляю привязку.

[self setObjectValue:[NSNumber numberWithInt:newValue]];

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

А NSTableColumn связан с ключом -[NSArrayController arrangedObjects]. Анкет Есть ли какой -то звонок, чтобы «коммировать» или «подключение обновлений», который мне не хватает? Я не мог найти никаких полезных функций в документах для NSCell или же NSTableView.

Это было полезно?

Решение

Чтобы решить это, я реализовал -tableView:setObjectValue:forTableColumn:row: в моем NSArrayController подкласс. Я получаю экземпляр моего NSManagedObject Подкласс из аргумента строки, а затем вручную назначьте новую модель из аргумента ObjectValue. Я до сих пор не знаю, почему это необходимо, когда текстовые ячейки делают это автоматически, но это работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top