Нечетная производительность отображения NSView

#cocoa #nsview

#cocoa #nsview

Вопрос:

Я добавляю пользовательский NSView в представление содержимого моего NSWindow. Всякий раз, когда я начинаю взаимодействовать с любыми вложенными представлениями этого нового NSView (некоторые NSTextFields, NSMatrix, NSPopUpButton и NSButton), эта конкретная часть представления, кажется, исчезает и показывает вложенное представление.

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

Заранее спасибо.

Комментарии:

1. У вас есть перекрывающиеся родственные представления?

2. У меня действительно есть другой NSView в рассматриваемом NSView.

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

4. Что ж, NSView, который я добавляю, имеет меньший NSView в качестве подвида этого представления. Насколько я знаю, это не должно быть проблемой? Я попытался удалить вложенный просмотр, но проблема все еще возникает.

5. Если перекрывающиеся представления всегда являются подвидами, это не должно быть проблемой. Это может быть проблемой, когда они являются родственными представлениями (т. Е. Совместно используют один и тот же прямой супервизор), потому что Cocoa не гарантирует корректного поведения в этом случае.

Ответ №1:

Похоже, это распространенная проблема. В итоге мне пришлось добавить это представление в качестве дочернего окна окна моего приложения.

Эта ссылка была очень полезной:http://blog.stuntaz.org/cocoa/2009/11/03/nswindow-overlay.html