需要有关Cocoa教程的建议,以便对Mac应用程序进行编程开发

时间:2011-01-31 05:15:51

标签: cocoa macos

我是Mac OS应用程序开发的新手。我对iPhone应用程序开发非常熟悉。但我很困惑在Mac应用程序中创建窗口,表视图和其他东西。我看到一些使用IB教授这些东西的教程。但我想学习以编程方式完成这些工作。

在iPhone中,我们可以创建View Controller并将其添加到窗口或导航控制器,可以添加到窗口。我需要知道如何在Mac上做类似的事情。任何人都可以建议/推荐一些初学者教程,教授Mac应用程序的程序化开发..

不要因为这个简单/非常基本/无论你认为最糟糕的问题而责备我。我一直在谷歌上搜索这个话题一周。我无法找到我需要的东西。我一直很感激你的帮助。

谢谢大家......

1 个答案:

答案 0 :(得分:1)

IB没有什么神奇之处。除了能够以所见即所得的方式查看和编辑动态类型之外,它不会添加任何功能。它使用了类接口的所有功能,以及一些Cocoa内部(对你来说足够可见 - 绑定和存档等)。

最大的运行时差异在于如何创建对象(例如NSView)。使用笔尖,你得到nib unarchiving,而不是[[MONView alloc] initWithFrame:r]

如果你已经熟悉语言/模式,那么你真的不需要太多的教程。通常,您只需查找具有相同名称的属性并在那里定义它。另外,你将实现自己的initWith方法,而不是NSCoder + awakeFromNib方法。一旦你理解了IB如何取消归档笔尖,这真的很简单。

所以......作为一个起点,我建议将功能性笔尖转换为功能性程序化实现。在此过程中,您将需要查找一些方法来了解如何操作和构建NSView图 - 如何将您在IB中知道的内容转换为源表示。

我真的不知道具体的资源,我的观点是它比你想象的要容易。当然,有一些酒吧可以简要地证明这一点 - 但我所知道的很快就会在很少的情况下证明它作为概念的证明,然后继续使用IB的教程。

我所知道的最好的奇异资源是可可编程(Anguish / Buck / Yacktman) - 也许已经过时或已经修订过。我知道的最后一次修改是从2002年开始的。

最后,你可能会有很多人告诉你使用IB是多么可怕的想法。如果你想进行认真的开发并且你已经了解IB,我认为这是一项很棒的技能,对我来说非常有用 - 特别是对于复杂的应用程序和大型代码库。对于简单的应用程序,它并不重要。我很少创建/使用笔尖 - 我只是在大多数情况下以编程方式实现它。我发现它更干净,更快,更少冗余。此外,我有大量的自定义实现并使用objc ++所以...当你离主线很远时,IB并没有那么大的帮助。

祝你好运!