Действия дескриптора NSSavePanel - PullRequest
2 голосов
/ 21 сентября 2011

Простой вопрос: я хочу обработать действие для кнопки отмены, нажатой в моей NSSavePanel.Я использую панель с классом делегата:

NSSavePanel *save = [NSSavePanel savePanel];
[save setDelegate:self];
[save runModal];

Я видел в документации это:

ok: этот метод действия вызывается, когда пользователь нажимает кнопку OK.button.

  • (IBAction) ok: (id) отправитель

, но я не знаю, как сказать панели для обработки этого метода ...

Спасибо.

Ответы [ 2 ]

3 голосов
/ 21 сентября 2011

Нашел другое решение с неблокирующей панелью:

[save beginWithCompletionHandler:^(NSInteger result) {
    if (result == NSFileHandlingPanelOKButton)
    {
        NSLog(@"Ok pressed.");
    }
    else if (result == NSFileHandlingPanelCancelButton)
    {
        NSLog(@"Cancel pressed.");
    }
}];
1 голос
/ 21 сентября 2011

Если вы просто хотите отменить нажатие:

 NSSavePanel *panel = [NSSavePanel savePanel]; 
 panel.delegate = self;

 if ([panel runModal] == NSOKButton) {
     // Got it, use the panel.URL field for something
 } else {
     // Cancel was pressed...
 }
...