2011-09-20 62 views
2

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

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

我的文档此上看到:

OK: 当用户点击面板上的OK按钮这个动作方法被调用。

  • (IBAction为)确定:(ID)发送

,但我不知道如何向面板说,以处理方法......

感谢。

回答

3

发现非阻塞面板另一种解决方案:

[save beginWithCompletionHandler:^(NSInteger result) { 
    if (result == NSFileHandlingPanelOKButton) 
    { 
     NSLog(@"Ok pressed."); 
    } 
    else if (result == NSFileHandlingPanelCancelButton) 
    { 
     NSLog(@"Cancel pressed."); 
    } 
}]; 
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... 
}