я настроить NSTableView
, столбцы которой связаны с NSArrayController
который получает содержимое из NSMutableArray
(Matches
) из NSMutableDictionary
экземпляров.содержания NSTableView не обновляется должным образом
Хотя вещь это работает, я испытываю эту проблему:
Когда Matches
массив обновляется (и это может произойти, вполне реально часто), то представление таблицы может не обновлять, но когда просмотр перерисовывается (например, когда я минимизирую и перезагружаю приложение), содержимое выглядит просто отлично.
Любые идеи по этому поводу? Как я мог сделать перерисовать представление/обновить содержимое?
Подсказки:
- Я также использовал
[tableView reloadData]
после обновления моегоMatches
массива, но без эффекта. - Это происходит не всегда, но несколько раз ... (это требует некоторого терпения и щелкает здесь-и-там или сводит к минимуму приложение, пока не появится содержимое).
Выдача уведомлений KVO вручную должна быть последней инстанцией. Лучше использовать [KVO-совместимые индексированные методы доступа] (https://developer.apple.com/library/mac/documentation/cocoa/conceptual/KeyValueCoding/Articles/AccessorConventions.html#//apple_ref/doc/uid/20002174 -SW4), чтобы мутировать массив. Я даже предпочел бы, чтобы обмен сообщениями с контроллером. Если вы вручную излучаете KVO-уведомления, лучше использовать специфичные для массива символы '-willChange: valuesAtIndexes: forKey:' и '-didChange: valuesAtIndexes: forKey:'. Они позволяют наблюдателям делать более эффективные операции в ответ. –
Спасибо большое! Это ** работает ** (Baaah! Я использовал столы и привязки и прочее, как 1000 раз, и у меня все еще не хватает вещей, хотя я определенно наткнулся на них в прошлом и, вероятно, исправил их также ...) –