NSSavePanel处理操作

时间:2011-09-20 21:03:54

标签: cocoa nssavepanel

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

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

我在文档中看到了这个:

  

OK:   当用户单击面板的“确定”按钮时,将调用此操作方法。

     
      
  • (IBAction为)OK:(ID)发送
  •   

但我不知道如何对小组说这个方法......

感谢。

2 个答案:

答案 0 :(得分:3)

找到另一个使用非阻塞面板的解决方案:

[save beginWithCompletionHandler:^(NSInteger result) {
    if (result == NSFileHandlingPanelOKButton)
    {
        NSLog(@"Ok pressed.");
    }
    else if (result == NSFileHandlingPanelCancelButton)
    {
        NSLog(@"Cancel pressed.");
    }
}];

答案 1 :(得分: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...
 }