NSView перекрывается - PullRequest
1 голос
/ 25 мая 2011

У моего приложения какао есть макет стиля "приборной панели". Когда приложение запускается, главное окно содержит 6 представлений, которые отображают графики. Когда я нажимаю на любую часть самого нижнего вида, у меня появляется другой экземпляр NSView в качестве аннотации. Проблема, с которой я сталкиваюсь, заключается в том, что всплывающее окно NSView достаточно велико, другие виды в окне перекрывают всплывающее окно. В настоящее время я делаю это с: [[собственное наблюдение] addSubview: annotationView]; где «superview» - это окно. Я не уверен, почему это так, я попытался удалить всплывающее представление из "стека представлений" и заставить его сменить позицию, но это не сработало.

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Если все виды добавляются как подпредставления [self superview], вы должны убедиться, что они не перекрываются.Какао не гарантирует правильного поведения в случае, если есть совпадающие друг с другом представления.

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

Хорошим примером использования дочерних окон для дополнительной информации является MAAttachedWindow Мэтта Джеммелла..

1 голос
/ 25 мая 2011
[[[self window] contentView] insertView:popupView atIndex:0];

Это вставит представление на верхнем уровне, если вы все еще не видите его, вам нужно будет добавить подпредставление к суперпредставлению представления содержимого NSWindow.

...