2011-09-20 61 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... 
}