Cocoa China 苹果开发中文站

苹果Mac OS X开发 iPhone开发 Cocoa以及Cocoa Touch

推荐使用Safari浏览器阅读本站

使用Cocoa框架的Mac机开发

支持Cocoa的ActiveRecord

如果你对Ruby On Rails有一点了解的话,一定会知道ActiveRecord的大名。ActiveRecord对于存取数据库的操作简单到飞起,开发者再也不用去考虑麻烦的SQL查询,而是把记录当做对象来用就是了。

Ruby On Rails热,ActiveRecord自然也就有人学着做,各种版本各种语言模仿ActiveRecord的到处都是,如果你的数据库程序没用上ActiveRecord,都不好意思出门……

苹果疯子们自然不甘示弱,有人也写了一个Objective-C版的ActiveRecord。

点击这里阅读全文 »

两个Objective-C的收发Email代码

前些天有读者提出需要在iPhone中开发Email的程序。在iPhone的SDK中除了使用mailto的方式发送邮件之外暂时还没有其他更好的方法。

这里介绍两个基于Objective-C的Open Source的Email代码,理论上来说经过微小的修改就可以用于iPhone中,不过需要注意的是请注意这两个代码的授权方式。

点击这里阅读全文 »

Cocoa的单态(singleton)设计模式

如果你准备写一个类,希望保证只有一个实例存在,同时可以得到这个特定实例提供服务的入口,那么可以使用单态设计模式。单态模式在Java、C++中很常用,在Cocoa里,也可以实现。

由于自己设计单态模式存在一定风险,主要是考虑到可能在多线程情况下会出现的问题,因此苹果官方建议使用以下方式来实现单态模式:

点击这里阅读全文 »

使NSImage支持在图片上添加倒影效果

Mac上一直比较流行的图片设计思路是在一个图片上面增加一个倒影,使其看起来的感觉像是放在一个透明的桌子上。最流行的就是iTunes中的CoverFlow。这个思路后来也被众多的Web 2.0公司的Logo设计者们普遍使用。

NSImage Reflection这段小代码是NSImage的category,专门用来在图片上添加倒影。你可以直接用它在图片上添加倒影效果。

代码可以在这里下载,用法也非常简单:

因为这个代码扩展了NSImage,所以要在某个NSImage图片上添加倒影,只需要使用[NSImage reflectedImage: amountReflected:]方法就可以了。很容易看明白,reflectedImage参数直接带上一个NSImage图片,amountReflected参数则是倒影的深度,用浮点数表示。

另外,代码使用了CTGradient类,如果你只想在Leopard中使用,也可以改改代码,直接使用NSGradient就可以了。

Cocoa教学:Windows OOP与Cocoa MVC之对比

封装不封装,这是个问题。 

今天我在看Cocoa开发者邮件列表的时候,看到一个帖子,求助如何在两个View之间互相通信的问题。做Windows程序员的时间长的我都不好意思说了,我意识到,这个问题在我刚刚接触到Mac上的Objective-C时也遇到过。

我现在可以提出这个问题的简化版:“我有一个对话框,获取了一些用户输入的数据。我现在需要从我那个对话框中把这个数据提取出来以供主窗口使用。如何才能从主窗口获取到对话框里的数据呢?”

点击这里阅读全文 »

最全的获取苹果机器硬件类型的方法

下面的方法可以将 sysctl hw.model 获取的苹果电脑硬件型号转换为容易看懂的形式。

1 复制下面的代码,将其保存为Macintosh.dict:

 

点击这里阅读全文 »

WebKit的基本用法

WebKit是苹果开发中比较常用的浏览器引擎,Safari使用的正是WebKit引擎。WebKit基于KDE的KHTML加以再开发,解析速度超过了以往所有的浏览器。这里简单记录一下WebKit的基本用法。

点击这里阅读全文 »

在Cocoa中使用Lua

Lua是一种非常好的脚本语言,最常用的是在游戏中。目前最强悍的MMORPG:World of Warcraft魔兽世界的UI插件便是用Lua写成。

LuaCore是一个Objective-C框架,专门用于在Cocoa中使用Lua脚本。同时,它还可以将Lua的数据直接转化成Objective-C的对象,更方便使用。

这里是一个例子,演示如何使用LuaCore:

 

点击这里阅读全文 »

在Cocoa中使用JSON

JSON是一种新的用于在互联网上进行数据交换的标准格式。由于它的冗余、可读性和可解析性都比XML要好,因此JSON这种数据交换格式越来越广泛地运用于Web应用,尤其是Ajax应用中。

在Cocoa中使用JSON也很简单,目前有两个JSON的框架,都很容易使用,而且都对NSDictionary进行了扩展,您可以选择其一将JSON“揉”到您的Cocoa应用程序里。

点击这里阅读全文 »

关于Objective-J的最新消息

在几天前Cocoachina介绍了关于Objective-J的内容,今天又有关于它的最新消息。

280的Tom在今天给我的邮件中提到,首先可以确认的是它将会是一个开源框架,而且有可能将会在几周内发布。

点击这里阅读全文 »

在Cocoa中使用TagLib获取歌曲ID3信息

 

TagLib是KDE开源项目的一个很有用的C++函数库,可以用于读取各种格式的歌曲ID3信息,诸如歌名、歌手、专辑等信息。

1.5版的TagLib支持MacOS,我们可以在Cocoa中直接使用TagLib来获取MP3歌曲的ID3信息。上图就是使用TagLib获取的歌曲信息,没有使用iTunes。

点击这里阅读全文 »

Cocoa开关组件

如果你用过TimeMachine,你一定知道里面有一个开关组件,可以划动进行开关操作。这个组件也提供了同样的功能。同样需要作者另外的一个amber framework框架的支持,并且只能运行在Leopard上。

组件下载地址在这里

  • 无评论
  • 子分类: 源码例子
  • iLife 08风格的Source List代码

     这是一个完全iLife 08风格的Source List代码,支持bindings。


    下载地址在这里。作者是Keith Du。由于需要作者另外的一个amber framework框架的支持,因此这个组件只能运行在Leopard上。

  • 无评论
  • 子分类: 源码例子
  • 在XCode中使用黑色HUD窗口风格控件

    Leopard中提供了HUD形式的窗口,但是并没有提供其他同样风格的控件,诸如按钮、单选框等。BGHUDAppKit是一个专门制作这种风格的开发包,专门用于制作HUD整体风格的UI。

    之前其实也有人实现过类似功能的程序,最知名的是Matt Gemmell的HUDWindow,但是BGHUDAppKit的特点是并没有使用图片进行UI的处理,而是完全用代码将界面画出来。这样做的好处很明显,做出来的程序是与分辨率无关的,也就是说无论在什么分辨率下(即使你用30寸的显示器)显示的效果都是完全一样的。

    点击这里阅读全文 »

    Cocoa矢量图程序开发包

    GCDrawKit是一款非常强大的矢量图程序开发包,有了它的帮助,你可以轻松用Cocoa开发出类似Illustrator或者Freehand这种矢量工具,当然,处理简单的图形工作也不在话下。

    点击这里阅读全文 »

    最新评论

    最新讨论