从iOS应用程序开发切换到Mac应用程序开发时,要克服的最大障碍是什么?

据传Mac应用程序开发与iOS应用程序开发非常相似,但当然有很大的不同。

当我们把所有有关硬件和屏幕限制的事实放在一边时,iOS应用程序开发人员开始用Mac应用程序开发必须克服的最大障碍是什么?

我听到的一些可怕的事情:

神话1:在Mac上,坐标系是不同的。 0在左下angular。 感觉就像在街道的错误的一边开车。

神话2:NSView是不是真的像UIView。 UIView总是有一个CALayer。 NSView不。

误区3:Mac上的表格视图比iOS上的UITableView要复杂得多。

有人可以揭穿他们,或添加其他几个? APIs中的痛苦差异在哪里?

1和2是绝对正确的。 3是有争议的 – 关于NSTableViews的一些事情是更好的,比如如何使用任何对象(例如string,图像,数字)作为单元格的值。

虽然我们正在讨论单元格的问题,但这又是另外一个痛苦 – 许多NSViews都具有单元属性来完成真正的工作,所以视图层次结构会被单元格层次结构镜像化,从而使得一切都变得更加复杂。 由于这个原因,文本字段真的很混乱。

而且,与UILabels / UIButtons相比,NSLabels / NSButtons几乎不能做任何事情 – 没有字体设置,没有颜色设置,根本就没有定制 – 它们基本上是无用的。

如果你使用核心animation,它与视图很难整合。 所以,举例来说,如果它是由一个CALayer支持的,就像在UIKit中那样,你可以用三维变换一个NSView,但是如果你尝试点击它,那么鼠标坐标不会被视图外观的相同变换映射,如果你转换一个控件,它基本上变成了不可点击的,除非你在转换它之前点击它原来在屏幕上的位置。

基本上整个Mac OS SDK感觉就像是早期的iOS SDK版本,没有经过适当的testing,一些愚蠢的,过度复杂的想法(单元)没有投入生产被拿走了。

</rant>