Z-заказ родного брата Нсвива в Какао

Как z-заказ работает с родным братом Нсвивсом в Какао? Я смущен, потому что я нахожу противоречивые источники информации в докторах и ПЧЕЛЕ Apple. (Отметьте: подвзгляды, очевидно, предоставлены сверху его родительского представления, я говорю явно о взглядах родного брата здесь).

Hypothesis A: "Yes, you can define the z-order of sibling NSViews"

  • В IB можно поместить взгляды друг на друга, и они всегда будут composited в способе, которым вы ожидали бы.
  • Там - кнопки в XCode в соответствии с меню Editor , названным, "Посылают в Обратный", "Посылают Вперед" и т.д.
  • , у NSView также есть названный метод - (пустота) addSubview: (NSView *) aView помещенный: (NSWindowOrderingMode) помещают relativeTo: (NSView *) otherView; , который, кажется, подразумевает, что есть четко определенный заказ.

Hypothesis B: "No way, z-order of sibling NSViews is undefined at runtime. Sometimes it works, sometimes it doesn't. Don't trust it!"

  • Apple's Docs (View Programming guide) state: For performance reasons, Cocoa does not enforce clipping among sibling views or guarantee correct invalidation and drawing behavior when sibling views overlap. If you want a view to be drawn in front of another view, you should make the front view a subview (or descendant) of the rear view.

Таким образом, какой - он?

3
nl ja de

2 ответы

Yes, NSView siblings are allowed to overlap, the Apple docs are out of date: Are layer-backed NSView siblings allowed to overlap?

Кроме того, z-заказ зависит от заказа подвзглядов в родительском представлении подвзгляды множество.

3
добавлено
Что, если взгляды кладут слоями, не поддерживается?
добавлено автор lms, источник
Работы также, посмотрите stackoverflow.com/a/10729201/171933
добавлено автор Johannes Fahrenkrug, источник
@dev_null вы могли определить, который означает связь и который комментирует вас? Спасибо!
добавлено автор Johannes Fahrenkrug, источник
Нет, доктора Apple не устарели. Есть случаи, показывая won' t работают правильно в случае, если взгляды не выложены слоями. объяснение в комментариях в связи выше.
добавлено автор dev_null, источник
ваш выше: stackoverflow.com/a/10729201/171933, мои комментарии ниже. Вещь, которую я заявляю, состоит в том, что есть такой вид NSView (я can' t говорят точно, какая технология используется в браузере хрома), что будут проигнорированы родные братья, которые выше в заказе Z. Я подозреваю, что наличие любого представления opengl достаточно для этого.
добавлено автор dev_null, источник
Ваше упоминание о заказе множества подвзглядов принудило меня тянуть свой project.xib в текстовом редакторе и перемещать мой imageview около вершины <подвзгляды> множество только под <коробка... и самый первый
добавлено автор Lor, источник

Я решал ту же самую проблему и нашел, что, по крайней мере, на Индивидуалистах она работает только с поддержанными взглядами слоя. У меня не было шанса до сих пор, чтобы проверить его на другом OS X версий, но на Индивидуалистах необходимо установить wantsLayer , чтобы ДА согласно всем взглядам, на которые вы хотите наложиться, чтобы заставить его работать.

2
добавлено
macOS — русскоговорящее сообщество
macOS — русскоговорящее сообщество
693 участник(ов)

Обсуждаем всё, что связано с экосистемой macOS и продуктами Apple.

macOS Developers — русскоговорящее сообщество
macOS Developers — русскоговорящее сообщество
124 участник(ов)

По всем остальным macOS / Apple вопросам в @macOS_ru Обсуждаем всё, что связано с разработкой под macOS.