cocoa - 第一个 Mac 应用程序 - Push viewcontroller

标签 cocoa macos nsviewcontroller

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

从一个干净的应用程序中,我在 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];

我该怎么做???

最佳答案

我认为您正在尝试将 iOS 风格的界面引入 MacOS X,但这在很多情况下行不通。 MacOS X 用户界面与 iOS 非常不同。

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

另一方面,桌面有足够的屏幕空间并允许多个窗口。桌面应用程序应该是 modeless ——用户不需要浏览应用程序,而是看到摆在他或她面前的整个内容。用户应该尽可能能够随时执行任何操作。

出于这些原因,Cocoa 中没有类似于 Cocoa Touch 的 UINavigationController 的导航 Controller 。如果您可以告诉我们更多有关您的两个 View Controller 管理的任务的信息,也许这里有人会帮助您想办法将其更好地转化为预期的桌面体验。

关于cocoa - 第一个 Mac 应用程序 - Push viewcontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6768142/

相关文章:

objective-c - cocoa 打印: Make print request percolate up to window

macos - -(无效)scrollWheel :(NSEvent)theEvent does not work

objective-c - 为什么 NSURLConnection 的 currentRequest 在重定向后不指示正确的 URL?

cocoa - NSOutlineView 具有拖放功能

Objective-C ARC 与 MRR : why the switch?

xcode - 如何在 NSViewController 中重新加载数据?

cocoa - 无法将操作连接到 NSViewController

cocoa - 如何使用自动布局调整 NSWindow 的大小?

objective-c - 如何以编程方式在 macOS 上查找挂载/弹出 USB 设备?

swift - 使用 NSViewController 在 osx 上切换 View Controller