iphone - 从 iOS 应用程序开发转向 Mac 应用程序开发时需要克服的最大障碍是什么?

标签 iphone ios macos ipad osx-lion

据传 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/

相关文章:

iphone - 如何通过蓝牙将iphone/ipad与其他设备连接?

javascript - Cordova iOS : Click on custom auto suggest not recognized cause keyboard closes

python - 并行安装 Python 2.7.1 和 Apple 提供的 Python

iphone - Storyboard是否强制您编写难看的代码?

iphone - 对象和非免费桥接类型之间的转换

iphone - 录音时振动 iPhone

mysql - 带有 QSqlDatabase 的 Qt 应用程序在使用 macdeployqt 构建时无法正常工作

iOS 为条形码扫描仪添加提示音

ios - 是否有任何适用于 IOS 应用程序图表的免费图表控件库,如饼图、条形图、折线图、面积图

macos - 当检查器打开时,Chrome 会随机中断,没有断点