sud*_*-rf 22
让我这样说吧:不要只是尝试将所有东西都移植到Mac而不考虑设计原则.许多开发人员都在寻求加入Mac开发人员的行列而不花时间进入他们的应用程序.简单地将应用程序从iOS移动到Mac并不会带来良好的界面.
面对它,iOS专为触摸屏而设计,而Mac则不是.因此,简单地转移您的界面可能会起作用,但它很糟糕并且被许多用户所厌恶.我要做的只是下载一些着名的Mac应用程序(演示工作正常),并研究界面与iOS相比如何布局.有类似的概念,但有更多的差异而不是相似之处.
最根本的区别是iPhone上的界面只能有一个窗口,而Mac可以有无限的窗口(理论上).将所有视图填充到一个窗口中只是不会在Mac上剪切它.用户已经开始期待多个窗口,老实说,这是一个更好的方法.
所以我的建议是从头开始学习Cocoa,然后考虑将应用程序转移到... 而不是简单地移植它,而是通过创建一个全新的界面.您的模型仍然可以使用,因为两个平台都使用Objective-C.
平台如此相似,但又如此不同.:)

Dar*_*ren 11
在编写现代OS X应用程序时,您通常会使用数据绑定将您的模型连接到您的视图,通过NSArrayController等通用控制器.
围绕Cocoa数据绑定对于新手而言是一个挑战性的任务,起初非常令人沮丧,然后非常令人兴奋.如果您的主数据绑定可能从根本上改变您设计软件的方式.
问题是你的iOS应用程序都没有考虑到Data Binding的设计,而且这是一个必须跨越的桥梁,以便成为一个快乐有效的OS X开发人员(同时学习各种各样的SDK差异)
两年前我走了另一条道路,出乎意料地艰难地走了过去.
OS X是一个更老的,并且是在Objective-C 2.0之前创建的,因此旧版AppKit/CoreFoundation类中没有很多属性.我的大多数旧iOS代码如下所示:
[[self navigationController] popViewControllerAnimated: YES];
Run Code Online (Sandbox Code Playgroud)
用户界面:大部分的resoponder/view/control层次结构都是类似的,但现在称为NS(来自拉丁语,用于NextStep),而不是UI(用于小屏幕的拉丁语).
控制:
稍微不同,您将操作连接到控件,控件决定何时发送操作消息,即.如果滚动条设置为连续发送消息.这与UIkit的工作方式略有不同,您可以在其中连接到事件类型:值已更改,内部触摸等.
您在OS X中获得了多个窗口,为您提供了新的机会和挑战.您必须更加关注响应者层次结构.
小东西总会让你感觉到,就像在UIBezierCurve中一样,这些方法的命名方式与NSBezierCurve的命名方式略有不同,addLineToPoint:而不是lineToPoint:
注意你的编译器警告并获取一本新书,你会没事的.
多年来,这两个平台变得更加相似,许多OS X API被迁移到iOS.我认为主要的区别是UI部分.在OS X上,您使用AppKit来显示UI而不是UIKit.(尽管您可以使用Interface Builder).
一些API已经反过来了:CoreLocation曾经是一个仅限iOS的框架,现在可以在OS X上使用.
其他变化:
根据您的经验水平,我将从Xcode中Apple提供的一些AppKit示例开始.HTH
| 归档时间: |
|
| 查看次数: |
8753 次 |
| 最近记录: |