初学cocoa开发:带你走入不一样的世界

       最近由于项目需求,特意研究了一下mac端app的相关开发,一开始就想着在网上搜搜资料,后来才发现网上资料的太少了!也曾在cocoa China 那个osx 开发那个论坛上混了好久,但是效果一直不怎么好,里面看的人不少回答问题的却没几个,后来在qq上搜mac开发群还真加了几个,在群里不耻下问,到最后也慢慢学会了很多!同时肯定也有人问:那为什么不直接看官方文档呢?唉,原谅我英语水平不怎么样,阅读官方文档确实有一定的难度!最后一路心酸总算把初版的项目搞定了!接下来即将为你们介绍的是一些相关cocoa开发的相关资料:如果有更好的,一定要私聊我!十分感激!

        关于网上 cocoa 相关的deom的网址:

        1.国内的  http://www.cocoachina.com/bbs/thread.php?fid-2.html 点击打开链接 上面会有一些,当然需要自己去找;

2.国外的有一个网站 https://www.cocoacontrols.com/controls   点击打开链接 上面也会有一些,我一开始一般都会在上面找,因为上面的相关deom还是不少的,我都会把我自己觉得好的deom下载下来,然后自己研究、借鉴一下!当然了上面有些deom是不能运行的,可能由于版本或者别的原因导致,有些项目自己按照里面的操作重写下就可以运行了;

3.最有名的一个那就是 https://github.com 点击打开链接 相信很多人都用过,怎么搜索的话就需要自己去找了!

当然啦,还有一些论坛,文章也有相关的介绍是非常不错的,大家都可以去看看,受益匪浅:

1.https://www.mgenware.com/blog/?cat=5 点击打开链接   是刘圆圆写的,目前随手记做iOS工程师

2.http://www.tanhao.me/tags/Mac/  点击打开链接  是一位老谭写的笔记

3.http://d3caifu.com/ebook/   点击打开链接 是对Mac开发基础教程的介绍,当然了只有部分章节,不过还是非常不错的入门篇

当然啦,也有其它非常不错的博客,只是觉得上面关于cocoa开发太少就没有拿出来。当然了基础教程的话我给大家推荐一本 苹果开发之Cocoa编程原书第4版  这是链接地址:http://download.csdn.net/detail/u012890071/9452827 点击打开链接 写的还行,不过不是特别的全面,更多的还需要自己去研究,当然还有其它基本书,但是使用价值并不怎么样,有时间的话可以自己搜搜看!

上面介绍的都是一些预习准备工作,接下来我会讲述一些关于mac app开发需要注意的一些事项,一般从ios转行做cocoa都需要注意的一些东西:

cocoa 开发常用的控制器为NSWindowController,而不是iOS里面的ViewController,因为mac app大多数为多窗口,而iphone app上只有一个主窗口,更多数的情况下我们是在ViewController做操作,显示各个不同的页面,而且UI控件大部分以UI开头,而cocoa开发刚好相反,UI控件基本上Main.storyboard是以NS开头,每个NSWindowController 的xib都包含一个NSWindow和一个NSView,也许有人会问我为什么不用storyboard,当然可能是我对cocoa下的storyboard不是特别的熟悉,另外一方面它确实没有xib用起来方便,最起码现在很多人做mac app开发时大部分都用的是xib,除了少部分的纯代码手写除外!

cocoa开发的坐标系也与ios开发的坐标系不同,cocoa开发的坐标系的原点在XY坐标系的左下角,而ios开发的坐标系的原点是在XY坐标系的左上角开始的。当然了,你要是不习惯的话可以强制性修改它的坐标系,如:通过覆盖视图的isFlipped方法,强制视图坐标系原点为左上角位置.


方法名称为:- (BOOL)isFlipped{return YES;} 一般声明某个控件在窗口的位置用  NSMakeRect(0, 0, 110, 110)或者

CGRectMake(0, 0, 110, 110) 至于两者到底目前有什么不同,暂时没有深入研究!在cocoa 开发中视图本身没有提供背景颜色,边框,圆角等属性。但是可以利用layer属性来控制这些效果,使用这些属性之前必须设置其属性wantsLayer为YES。这一点就相对于没有ios开发要方便的多,当然还可以通过重绘的方法来实现这些效果  - (void)drawRect:(NSRect)dirtyRect

在cocoa开发中一般以NSWindow为窗口,如果要实现跳转显示另一个窗口需要关闭当前窗口,然后显示下一个窗口,这些内容将会在下一篇博客中揭晓,今天暂时就先这样!本人也不怎么会总结,也没有上面那些博客介绍的详细,以后会尽力通过代码去实现,向大家说明!


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭