Заказать цветную панель - PullRequest
1 голос
/ 07 сентября 2011

Мы все знаем, что цветовая панель будет двигаться вперед: [[NSApplication sharedApplication] orderFrontColorPanel:nil];, но как ее снова скрыть? Я пробовал orderOutColorPanel:, но это не работает.

Ответы [ 3 ]

2 голосов
/ 07 сентября 2011

В случае сомнений используйте грубую силу:

- (void)hideColorPanel {
    NSArray * wndws = [NSApp windows];
    for( NSWindow * w in wndws ){
        if( [w isKindOfClass:[NSColorPanel class]] ){
            [w orderOut:nil];
            break;
        }
    }
}
0 голосов
/ 27 декабря 2016

По состоянию на 2016 год. Есть способ.в Swift 3 вы можете переключать NSColorPanel следующим образом:

func toggleColorPanel(_ sender: NSButton) {
  if /*NSColorPanel.sharedColorPanelExists() &&*/ NSColorPanel.shared().isVisible {
        NSColorPanel.shared().orderOut(self)
    } else {
        NSApplication.shared().orderFrontColorPanel(self)
    }
}
0 голосов
/ 07 сентября 2011

Вы правы. В NSApplication нет способа закрыть панель цветов. Предполагается, что пользователь будет иметь контроль над панелью, как только она отобразится.

...