2009-04-20 30 views
3

我有一個簡單的基於文檔的Cocoa應用程序,充當.wav文件的查看器,做一些頻率分析。我希望能夠將從打開的文件收集的數據導出到CSV中,以便在其他程序中進一步分析。在基於文檔的Cocoa應用程序中實現導出功能的可接受方式是什麼?

可可基於文檔的應用程序框架,可以覆蓋

- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError 

來實現默認保存/另存爲...工作流程,但我不想寫,我打開文件。

顯而易見的事情是在我的文檔中實現導出工作流,以呈現文件保存表,構建一些NSData,並將其寫入文件路徑,但是沒有明顯的方式來連接MainMenu筆尖在文檔控制器上進行操作。

那麼,在基於文檔的Cocoa應用程序中實現這種功能的可接受方式是什麼?

回答

3

您可以在MainMenu.nib的「First Responder」對象中創建一個名爲「export:」的新操作並連接到它。然後,在您的文檔子類中實現export:方法。這會調用你的方法。

其原因是,發送給魔術第一響應者對象的消息遍歷整個響應者鏈,尋找處理它們的對象。該響應鏈中的一個項目是文檔,所以噹噹前選定的控件,視圖,超級視圖,窗口等都不處理該消息時,該文檔就有機會了。 (文檔控制器也在該鏈上,因此您也可以使用它。)

查看Apple's responder chain docs - 圖1.10涵蓋了此特定路徑。

+0

啊!我知道我錯過了一些明顯的東西。謝謝! – qwzybug 2009-04-20 22:44:29

相關問題