2

简单的问题:我想处理在我的 NSSavePanel 中按下取消按钮的操作。我将面板与委托类一起使用:

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

我在文档上看到了这个:

ok:当用户单击面板的 OK 按钮时调用此操作方法。

  • (IBAction)ok:(id)sender

但我不知道如何对面板说处理该方法...

谢谢。

4

2 回答 2

3

找到了另一个带有非阻塞面板的解决方案:

[save beginWithCompletionHandler:^(NSInteger result) {
    if (result == NSFileHandlingPanelOKButton)
    {
        NSLog(@"Ok pressed.");
    }
    else if (result == NSFileHandlingPanelCancelButton)
    {
        NSLog(@"Cancel pressed.");
    }
}];
于 2011-09-21T08:09:17.797 回答
1

如果您只是想处理按下的取消:

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

 if ([panel runModal] == NSOKButton) {
     // Got it, use the panel.URL field for something
 } else {
     // Cancel was pressed...
 }
于 2011-09-20T21:54:13.293 回答