Сообщение NSView, когда отображается, а когда нет?

Есть ли какой-то метод делегата, который отправляет сообщение, когда отображается NSView, или нет? Мне нужно запустить NSTimer, когда NSView отображается на экране, и мне нужно сделать его недействительным, когда это не так, чтобы он не работал без надобности в фоновом режиме все время.


person iMaddin    schedule 02.07.2012    source источник


Ответы (1)


В зависимости от того, как вы реализовали свой код, вы можете создать подкласс NSView и создать свой собственный протокол делегата, который отправляет правильные сообщения для различных событий NSView, таких как _ 1_ или " _ 2_ ".

Если вы встраиваете это представление в один объект NSWindow, вы можете создать подкласс NSWindow, а затем использовать собственные методы протокола делегата для «close» или «performClose:». Конечно, в этом случае на самом деле уже существует " _ 5_ "протокол, определенный для вас.

person Michael Dautermann    schedule 02.07.2012
comment
Спасибо за ответ, но не могли бы вы уточнить, как я могу использовать setHidden, чтобы он вел себя как метод делегата? - person iMaddin; 03.07.2012
comment
будет ли ваш NSView отображаться только в одном объекте NSWindow или он может отображаться в одном из множества различных уникальных окон? - person Michael Dautermann; 03.07.2012
comment
Как насчет того, чтобы определить, когда UITableViewCell находится вне экрана, а затем отменить таймер? Другие люди уже задавали этот вопрос раньше. - person Michael Dautermann; 05.07.2012
comment
В этом посте нет ничего, что помогло бы мне. Я нашел этот метод делегата - (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex, но мне не удалось заставить его работать прямо сейчас. Но мне нужна willHideCell версия этого. - person iMaddin; 10.07.2012