据传 Mac 应用程序开发与 iOS 应用程序开发非常相似,但当然也存在很大差异。
当我们抛开有关硬件和屏幕限制的所有事实时,经验丰富的 iOS 应用开发人员在开始 Mac 应用开发时必须克服的最大障碍是什么?
我听过的一些可怕的事情:
误区1:在Mac上,坐标系是不同的。 0 位于左下角。感觉就像在街道的错误一侧开车。
谣言 2:NSView 并不真正像 UIView。 UIView 总是有一个 CALayer。 NSView 没有。
误区 3:Mac 上的表格 View 比 iOS 上的 UITableView 更复杂、更难使用。
有人可以揭穿它们,或者添加其他一些吗? API 中令人痛苦的差异在哪里?
最佳答案
1 和 2 绝对正确。 3 是有争议的 - NSTableViews 的一些东西更好,例如如何使用任何对象(例如字符串、图像、数字)作为单元格值。
虽然我们讨论的是单元格的主题,但这是另一个痛苦 - 许多 NSView 具有执行实际工作的单元格属性,因此 View 层次结构由单元格层次结构镜像,这使得一切变得更加复杂。因此,文本字段确实令人困惑。
此外,与 UILabels/UIButtons 相比,NSLabels/NSButtons 几乎不能做任何事情 - 没有字体设置,没有颜色设置,根本没有自定义 - 它们基本上没有用。
如果您确实使用核心动画,它与 View 的集成很差。例如,如果 NSView 由 CALayer 支持,则可以将其转换为 3D,就像在 UIKit 中一样,但是如果您尝试单击它,则鼠标坐标不会通过与 View 外观相同的转换来映射,因此如果你变换一个控件,它基本上变得不可点击,除非你在变换它之前单击它最初位于屏幕上的位置。
基本上,整个 Mac OS SDK 感觉就像是 iOS SDK 的早期 alpha 版本,尚未经过适当的测试,并且其中一些愚蠢、过于复杂的想法(单元)并未投入生产还没取出来。
</rant>
关于iphone - 从 iOS 应用程序开发转向 Mac 应用程序开发时需要克服的最大障碍是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9018076/