Как я могу проверить, отображается ли NSView в данный момент? - PullRequest
1 голос
/ 21 января 2010

Я получил приложение, в главном окне которого есть NSToolbar. В зависимости от того, по какому значку щелкнули, в этом окне отображается NSView. Моя проблема в том, что одно из этих представлений показывает данные в NSTableView, которые я хочу загружать каждый раз, когда представление является видимым. Поскольку -init вызывается только один раз, я не знаю, как это сделать. (пример: когда приложение запускается, оно показывает раздел «Документы» [одно из вложенных представлений окна]. Теперь, когда я нажимаю «Сотрудники» [который отображает другое вспомогательное представление вместо первого], а затем снова «Документы», я хочу данные в NSTableView документов для перезагрузки.)

Как мне это сделать?

Заранее спасибо.

1 Ответ

1 голос
/ 22 января 2010

Я получил приложение, в главном окне которого есть NSToolbar. В зависимости от того, по какому значку щелкнули, в этом окне отображается NSView.

Используйте вид вкладки. Вы можете скрыть вкладки, а затем реализовать свои методы действий, чтобы элементы панели инструментов действовали как вкладки, изменяя выбранный элемент представления вкладок на тот, который соответствует нажатому элементу панели инструментов.

Теперь, когда я нажимаю на Employees [который отображает другое вспомогательное представление вместо первого], а затем снова на Documents, я хочу перезагрузить данные в NSTableView для Documents.

Почему? Почему бы не перезагрузить его только при изменении данных?

Вам не нужно держать руку NSTableView; если ему снова понадобятся данные от вас, он снова попросит вас об этом.

И если вы беспокоитесь о перезагрузке данных, когда представление не видно, это преждевременная оптимизация. Не беспокойтесь, пока через профилирование не докажете, что это реальная проблема производительности.

...