В ответ на пользовательское событие, я хочу:Как мне сделать что-то после следующего прогона NSView?
- добавить новый NSView к окну, а затем
- показать NSPanel расположен чуть ниже этой точки зрения
Я имею каждую половину из этого сделано. Я могу добавить новое подвью, а в виде контейнера идентифицирует его и добавляет правильные ограничения макета, так что следующий макет времени выполняется, он позиционируется правильно в окне. Кроме того, у меня есть подкласс NSWindowController, который помещает панель на экран.
К сожалению, у вас возникла проблема с заказом. Контроллер моей панели просто смотрит на новое свойство NSView frame
, чтобы решить, куда его поместить, но во время этой итерации главного цикла событий метод -layout
еще не вызывается, поэтому он все еще находится в позиции (0,0).
(Если бы я разделить эти две функциональные части, и требуют двух отдельных пользовательских событий для «добавить мнение» и «создать панель», то панель правильно расположена ниже точки зрения.)
Есть ли способ для присоединения NSPanel к NSView, как будто с ограничением макета? Или есть способ сказать «сделайте это (материал контроллера окна), но только после следующего -layout
звоните«?
Отлично! Благодаря! – user3277676
И да, я, должно быть, думал о методе '- showRelativeToRect :SPView: preferredEdge:' NSPopOver. Я использовал NSPopOver в прошлом, но в этом конкретном случае я не хочу треугольника речи-пузыря. – user3277676