Cocoa应用程序的文档相关操作应该在哪里实现?

时间:2010-03-20 15:18:20

标签: cocoa nsdocument nswindowcontroller

我正在编写一个基于文档的Cocoa应用程序,它基本上是一个图形编辑程序。我希望用户能够显示/隐藏非模态窗口(例如检查器窗口)。由于这些窗口会在菜单项中显示/隐藏,因此实施操作的“最佳”位置在哪里,例如- (IBAction)toggleInspector:(id)sender

我已经看到,在Sketch示例代码中,这些是在app委托中实现的,并且窗口控制器实例也保存在那里,但是感觉就像放置它的一个方便的地方而不是最“优雅”地点。此外,由于此检查器仅在文档打开时才相关,因此感觉它应该与文档的主NSWindowController相关联而不是应用程序。

1 个答案:

答案 0 :(得分:2)

  

此外,由于此检查器仅在文档打开时才相关,因此感觉应该与文档的主要NSWindowController相关联而不是应用程序。

不,因为检查员在所有文件中共享;每个文档没有一个Inspector。

请记住,单个流程可以打开多个文档;这些不是多个进程,每个文档一个,如在Windows上,但在单个进程中有多个文档。每个流程都有一个Inspector,在所有文档中共享,适用于当时最前面的文档。

我会给Inspector一个自己的控制器,在MainMenu笔尖中实例化。