ios - 为来自 iOS 背景的 OS X 开发

标签 ios objective-c macos

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.


8年前关闭。







Improve this question




几年来我一直只为 iOS 开发,并且认为自己对 iOS 和 Objective C 相当胜任。我想进一步扩展我的技能并进入 OS X 桌面应用程序领域。

考虑到两个平台关于 View Controller 和窗口 Controller (仅举几例)的巨大不同范例,我正在努力寻找一个体面的起点来让我的脚湿透,因为我对 iOS SDK 的了解在阅读操作系统时会引起困惑X 文档。

对我来说,iOS 的主要类是 UIViewController (它的变体 UINavigationControllerUISplitViewController )和 UIView .掌握这些可以使学习它们的子类(例如 UIButtonUITextField )更容易理解,同时还可以在屏幕上显示一些内容以提供可见的结果。

目前,据我了解NSViewController不一定与 UIViewController 相同.此外,考虑到 OS X 应用程序可以有多个窗口,UIWindowController对我来说完全陌生,我不明白这将如何位于应用程序的层次结构中。

任何经验丰富的 OS X 退伍军人会好心地建议哪些类(class)是我阅读和玩耍的最有用的起点吗?在这一点上对我有帮助的是找到我应该集中精力在 SDK 的哪个区域来充分辨别 iOS 和 OS X 之间的差异。

编辑:

我不是要教程列表。我更希望有人解释多 View Controller 层次结构 (iOS) 的范式与 OS X 的单个窗口设置之间的区别和/或建议最好研究哪些类作为在屏幕上显示某些内容的起点如NSWindowNSWindowController .

最佳答案

OS X 与 iOS 非常相似,因为它也遵循 MVC 概念。然而,整个用户体验是不同的,因为 OS X 通常使用更大的显示器并使用鼠标和键盘进行输入,因此假设 NSViewController 之间的映射为 1:1。和 UIViewController不可能。通常情况下,你有一个窗口 Controller ,它有点像你期望你的 View Controller 在 iOS 下的行为。但是,不是在 View Controller 之间转换,而是使用例如。一个 UINavigationController ,您可以将第二个窗口显示为模态表,或者将其作为面板或类似方式打开。

看看你的普通 Mac 应用程序,iOS 下的大多数东西都需要多个 View Controller 和它们之间的转换,只需要一个包含所有内容的窗口即可。 OS X 下的 View Controller 不如 iOS 下有用,但是,它们可以很好地将不同的逻辑拆分到多个类中,或者当你想在一个窗口中显示不同的内容并在它们之间切换时(想想 Xcode,左边和右 Pane 始终相同,但中间的内容,文本编辑器,目标编辑器等发生了变化。那将是使用多个 View Controller 的地方)。

我的建议是不要尝试 iOS'fy Mac 应用程序。虽然您可以保持底层逻辑相同,但由于 OS X 上的整个用户体验大不相同,因此您的应用程序的呈现方式应该有根本的不同。如果您不确定如何使用 NSWindowController 等内容, NSDocument ,以及所有内容,Apple 提供的文档和示例代码在大多数情况下都非常好(尽管有些示例较旧)

关于ios - 为来自 iOS 背景的 OS X 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18568545/

相关文章:

ios - 当我重新加载表格 View 时,来自调试器 : Terminated due to memory issue, 的消息

ios - 如何将 tableview 单元格附件应用于 tableview 记录

ios - 不同tableView部分的核心数据对象

ios - 两个 NSDate 之间的天数

objective-c - 将沙盒应用程序添加到登录项

PHP Apple iOS 推送通知 : Command2 : Binary Interface and Notification Format

macos - 如何关闭在 Mac OSX 上运行的 rethinkdb

objective-c - 是否可以检查存储在 NSimage 对象中的图像是否为灰度图像?

objective-c - 邮件 : Application isn't running

ios - 应用程序在第二点后卡住,Objective C