Как я могу убедиться, что окно отображается только один раз в Какао? - PullRequest
1 голос
/ 13 января 2011

У меня есть NSWindow, которое содержит NSImageView.Это окно активируется каждый раз, когда я нажимаю на ячейку в моем табличном представлении.Я только хочу, чтобы появился 1 экземпляр NSWindow, но хочу иметь возможность изменять содержимое NSImageView.

Как я могу инициализировать NSWindow и отображать только 1 его экземпляр?

Ответы [ 2 ]

3 голосов
/ 13 января 2011
2 голосов
/ 13 января 2011

Одна из возможностей сделать это - создать подкласс NSWindowController и связанный с ним XIB окна, который загружается при создании экземпляра контроллера окна.

Я уверен, что у вас уже есть некоторый класс контроллера, обрабатывающий щелчок мыши вNSTableView.В этом классе просто держите экземпляр упомянутого выше подкласса NSWindowController как переменную экземпляра.Всякий раз, когда вам нужно отобразить окно, скажите, что ivar отображает его окно.

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

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

...