第一个mac app - 推送viewcontroller

时间:2011-07-20 20:32:35

标签: cocoa macos nsviewcontroller

我有一个问题,我做了一些iphone应用程序,现在我想做一个小应用程序。

在干净的应用程序中,我在MainMenu xib上添加了一个按钮,而不是使用一个Action将NSViewController添加到MainMenu(来自IB)。 我创建了一个带有nib文件和按钮的新NSViewController(FirstViewController)。 现在我只想创建一个从MainMenu推送FirstController的函数和一个从FirstController推送MainMenu的简单函数。

类似这样的事情

ViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController: ViewController animated:YES];

我该怎么办?

2 个答案:

答案 0 :(得分:4)

我认为您正在尝试为MacOS X带来iOS风格的界面,而且在许多情况下都无法使用。 MacOS X用户界面与iOS非常不同。

iOS应用程序仅限于一个(通常很小)窗口,用户通常一次只做一件事。导航界面标准化了用户深入了解任务的不同部分的方式,以便旅程可预测。在用户不断在应用程序的不同部分之间导航的意义上,界面非常模态,用户操作通常链接到活动的应用程序部分。

另一方面,桌面有足够的屏幕空间,允许多个窗口。桌面应用程序应为modeless - 用户不会浏览应用程序,但会在他或她之前看到整个内容。用户应尽可能随时执行任何操作。

由于这些原因,Cocoa中没有类似于Cocoa Touch的UINavigationController的导航控制器。如果您可以告诉我们有关您的两个视图控制器管理的任务的更多信息,那么此处的某些人可能会帮助您思考如何将其更好地转换为预期的桌面体验。

答案 1 :(得分:0)

Here apple讨论了迁移iOS到OS X的策略。您的方案也在这里讨论:

  

例如,AppKit使用NSBrowser类来管理显示   分层信息;相比之下,iOS应用程序将使用导航   控制器。

使用here可以看到NSBrowser的输出,如附图所示。

enter image description here