2012-12-13 4 views
0

У меня есть контроллер управления представлением, который переключается в один из набора ранее выделенных контроллеров суб-представлений, когда пользователь выбирает пункт меню.Удаление представления из subview не вызывает willRemoveSubview

Когда я включаю контроллер вида, я подключаю представление управляющего контроллера представления к представлению в контроллере дополнительного представления.

[mvc.view addSubview: subvc.view];

Все, кажется, работает нормально.

Однако при удалении этой точки зрения вид суб контроллера с точки зрения иерархии с (например .. при переключении страниц в приложении):

[subvc.view removeFromSuperview];

  • метод willRemoveSubview в классе пользовательского вида никогда не срабатывает. Я подтвердил, что когда я делаю вызов removeFromSuperview, я вызываю его на экземпляр моего пользовательского класса просмотра.

Другие методы в моем классе пользовательских представлений не срабатывают, например viewWillMoveToWindow.

В справочном документе NSView говорится, что этот метод следует называть?

Может кто-нибудь предложить, почему это не работает?

Я бегу на 10.8.2 компиляции для 10.7 с Xcode 4.5.2

Благодаря

Даррена.

+0

Вы переопределили какие-либо методы, которые изменяют иерархию представлений, например -removeFromSuperview, -addSubview и т. Д.? – paulmelnikow

ответ

1

willRemoveSubview:, как следует из названия, вызывается на супер-вид, а не на подсмотр.

+0

Спасибо, я полностью неверно истолковал документ Apple. Я теперь применил метод в классе NSView клиента на супер-представлении, и все работает отлично. –