关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
8年前关闭。
Improve this question
几年来我一直只为 iOS 开发,并且认为自己对 iOS 和 Objective C 相当胜任。我想进一步扩展我的技能并进入 OS X 桌面应用程序领域。
考虑到两个平台关于 View Controller 和窗口 Controller (仅举几例)的巨大不同范例,我正在努力寻找一个体面的起点来让我的脚湿透,因为我对 iOS SDK 的了解在阅读操作系统时会引起困惑X 文档。
对我来说,iOS 的主要类是 UIViewController
(它的变体 UINavigationController
和 UISplitViewController
)和 UIView
.掌握这些可以使学习它们的子类(例如 UIButton
, UITextField
)更容易理解,同时还可以在屏幕上显示一些内容以提供可见的结果。
目前,据我了解NSViewController
不一定与 UIViewController
相同.此外,考虑到 OS X 应用程序可以有多个窗口,UIWindowController
对我来说完全陌生,我不明白这将如何位于应用程序的层次结构中。
任何经验丰富的 OS X 退伍军人会好心地建议哪些类(class)是我阅读和玩耍的最有用的起点吗?在这一点上对我有帮助的是找到我应该集中精力在 SDK 的哪个区域来充分辨别 iOS 和 OS X 之间的差异。
编辑:
我不是要教程列表。我更希望有人解释多 View Controller 层次结构 (iOS) 的范式与 OS X 的单个窗口设置之间的区别和/或建议最好研究哪些类作为在屏幕上显示某些内容的起点如NSWindow
和 NSWindowController
.
最佳答案
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/