Подтвердить что ты не робот

Настройка положения NSWindow перед отображением

Сейчас я устанавливаю положение окна, которое вот-вот откроется следующим образом:

-(void) setActiveNodeDialog:(ISKNodeDialogController *)dialog
{
    if (activeNodeDialog)
        [[activeNodeDialog window] close];
    activeNodeDialog = dialog;
    if (activeNodeDialog) {
        [activeNodeDialog setMainWindowController:self];
        NSRect windowRect = [[self window] frame];
        NSRect dialogRect = [[activeNodeDialog window] frame];
        NSPoint pos;
        pos.x = windowRect.origin.x + windowRect.size.width - dialogRect.size.width - 10;
        pos.y = windowRect.origin.y + 32;
        [[activeNodeDialog window] setFrameOrigin:pos];
        [[activeNodeDialog window] makeKeyAndOrderFront:nil];
    }
}

Проблема заключается в том, что окно будет "прыгать", когда будет показано. И это несмотря на то, что я установил позицию, прежде чем показывать окно с помощью "makeKeyAndOrderFront". Окно NSPanel *. Кто-нибудь знает, как исправить прыжки?

Установка позиции в awakeFromNib не является опцией, потому что главный контроллер установлен позже.

4b9b3361

Ответ 1

В интерфейсе Builder отображается "visible at launch" для окна? Если это снимите флажок, тогда вам даже не понадобится этот код [[windowNodeDialog window] close];. В основном, если это отмечено, окно автоматически отображается при создании экземпляра xib..., который вам не нужен.