9

我想用一个ViewController类似于 iOS“单一视图应用程序”模板的 Cocoa 应用程序,但是没有这样的模板(有没有可以使用的公共/开源的?)

对于 Cocoa 应用程序,我们真的不需要一个,因为它NSView已经可以做任何事情,是真的吗?我们可以将所有事件处理放在我们自定义的 NSView 类中。是不是 iOS 需要它更多,因为旋转是由 ViewController 处理的,并且通常需要旋转?但是如果我们使用 MVC,那么总是使用 ViewController 可能会更好,如果是这样,有没有标准的方法,一个模板,可以做到这一点?

4

2 回答 2

5

OS X 中关于管理 NSViews 的“控制器”是NSWindowController. 尽管 Drummer 说这NSViewController不是很有用,但我必须不同意 -NSWindowController一旦它变得太大,它对于拆分你的东西很有用,并且在观点方面有明确的逻辑划分。

你可以有一个NSWindowController,一旦它变得足够复杂,就NSWindowController可以将与特定视图对应的任务委托给 的子类NSViewController,在这方面它非常有用。

在默认模板(如果我没记错的话)中,AppDelegate它扮演窗口控制器的角色,尽管它在技术上不是一个。在更复杂的应用程序中,最好实例化一个窗口控制器。

只要你不混淆控制器和查看任何东西都可以使用。视图应该降级为仅显示和基本输入处理。

于 2012-09-17T18:42:59.240 回答
3

在 OS XNSViewController上不像UIViewController在 iOS 上那样经常使用。原因之一是它并不是真正有用,并且缺少UIViewController. 只有在少数情况下您必须真正使用它们,例如使用NSPopover.

有几种方法可以构建您的 OS X 代码。其中之一是使用NSWindowController. 您可以将其视为iOS 上NSWindowController的等价物。UIViewController

于 2012-09-16T17:07:03.530 回答