Обновить содержимое NSView, когда представление отображается с помощью MAAttachedWindow.

В моем приложении я отображаю NSView, когда пользователь щелкает значок на панели состояния системы. Этот NSView отображается с помощью MAAttachedWindow.

Мой вопрос: как обновить содержимое NSView при отображении прикрепленного окна (makeKeyandorderFront)

Я пытался обновить содержимое в методе awakeFromNib, но он работает только один раз.

Кто-нибудь может мне помочь?

Спасибо


person FredPonch    schedule 02.02.2011    source источник


Ответы (2)


Решение, которое я нашел:

Я добавил наблюдателя в свое представление: я установил объект в [selft window] для прослушивания уведомления NSWindowDidBecomeKeyNotification MAAttachedwindow.

-(void)awakeFromNib

{

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDidBecomeKey:) name:NSWindowDidBecomeKeyNotification object:[self window]];

}

-(void) windowDidBecomeKey:(NSNotification *)примечание

{

// Обновить здесь

}

person FredPonch    schedule 03.02.2011

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

Предположительно любое действие, отображающее ваше представление в экземпляре MAAttachedWindow, является идеальным местом для его «обновления» перед отображением, т. е. вашим собственным вызовом -makeKeyAndOrderFront:.

Итак: Что вы пробовали?

person Joshua Nozzi    schedule 02.02.2011
comment
Сегодня утром я нашел решение: я добавил наблюдателя в своем представлении к уведомлению windowDidBecomeKey из MAAttachedwindow. добавить обновление в селекторе. (Я пробовал это решение, прежде чем задавать свой вопрос, но из-за другой ошибки это не работало и вызывало зависание приложения) - person FredPonch; 03.02.2011