2016-03-10 3 views
0

osx- У меня есть два окна, Я сначала установил первое окно в ключевое окно, , а затем установите второе окно в качестве ключевого окна, , затем я вызываю [NSApp activateIgnoringOtherApps: Yes]. И я печатаю [[NSApplication sharedApplication] orderedWindows];Почему главное и главное окно не в верхнем окне?

Я обнаружил, что при первом закрытом окне заказанные окна будут только вторым окном.

Но если первое окно остается открытым, даже если бы я сделал второе окно будет ключевым и основным, но orderedWindows будет {firstWindow, secondWindow}

Но я хочу, чтобы второе окно будет Спереди один.

Я также сделать secondWindow сделать так:

[captureWindow setLevel:NSStatusWindowLevel + 2]; 
    [captureWindow setReleasedWhenClosed:YES]; 
    [captureWindow setAcceptsMouseMovedEvents:YES]; 
    [captureWindow setMovableByWindowBackground:NO]; 
    [captureWindow makeKeyAndOrderFront:self]; 
    [captureWindow orderFrontRegardless]; 
    [captureWindow orderFront:self]; 
    [captureWindow makeKeyWindow]; 
    [captureWindow makeMainWindow]; 
    [NSApp activateIgnoringOtherApps:YES]; 

Но когда [NSApp activateIgnoringOtherApps: YES]; после выполнения первого окна все еще на экране, тогда windowOrdered будет {firstWindow, secondWindow}, поэтому я думаю, что orderFront не работает?

ответ

1

Ни «ключ», ни «главный» не связаны с заказом. Если вы хотите сделать окно, заказанное спереди, то метод будет [NSWindow orderFront:]. Существует метод удобства, который часто используется для обоих: [NSWindow makeKeyAndOrderFront:].

+0

Я сделал это, но он все еще не работал, он сначала начнет мигать, покажет первое окно, а затем отобразит второе окно. – melody5417

+0

Второе окно было верхним окном на экране, но в первом окне появилась вспышка. И я печатаю окно WindowDrieded, это было {firstwindow, secondWindow}, хотя я заказал второй фронт. [/ cry] – melody5417

+0

Спасибо за помощь, я просто знаю, что я должен щелкнуть чек, чтобы отметить принятый ответ. – melody5417

Смежные вопросы