Cocoa China 苹果开发中文站

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

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

小技巧

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

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

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

 

点击这里阅读全文 »

在Dock图标上画进度条

如果你用过Toast这个刻录软件,你会发现在刻录的时候,Dock图标上会有一个进度条,表示刻录的进度。如果你在用XCode,编译的时候图标上也会有一个进度条表示编译的进度。

其实在Dock图标上画进度条是很简单的事情,你只需要做如下工作即可:

点击这里阅读全文 »

将字符转换为键盘码的代码

以下这段代码可以将字符串转换为键盘码,以备需要时用到。

  1. - (int)keyCodeForCharacter: (NSString*)character {
  2.     if(![character length]) return -1;
  3.    
  4.     char code;
  5.     BOOL shift, alt;
  6.     if(Ascii2Virtual( (char)[character characterAtIndex: 0], &shift, &alt, &code)) {
  7.         return code;
  8.     }
  9.     return -1;
  10. }

点击这里阅读全文 »

解决iPhone网络软件在睡眠情况断线问题

如果你希望使用iPhone的网络功能并保持长连接,并使用Wifi的话,你可能会发现一个问题,那就是在iPhone处于睡眠状态时,Wifi会中断,这样程序就无法保持连接。(iPhone非官方SDK)

下面的代码可能会帮你解决这个问题。

点击这里阅读全文 »

Cocoa教学:如何在菜单栏显示图标及菜单

如果你用过CoverSutra,那么你一定对它的菜单栏图标有印象。通过在菜单栏画一个心型小图标,你可以在菜单栏控制iTunes的音乐播放和欣赏音乐封面。

要在自己的程序里加入菜单栏图标,其实也很简单。

点击这里阅读全文 »

XCode快捷键速查壁纸

强而又悍的Colin Wheeler制作了一个XCode快捷键速查的PDF文档,非常适合做为墙纸使用。

你可以直接下载1280×800的png文件,或者下载这个矢量的PDF文件改成适合你屏幕分辨率的墙纸。

很有意思,我现在的墙纸就是这个。

技巧:如何获取当前操作系统版本号

以下代码是获取操作系统版本号的最佳方法。

 

点击这里阅读全文 »

Cocoa简单获取系统地址簿联系人的方法

新版本的Skype和一些其他聊天工具都提供了自动将地址簿联系人加入联系人列表的功能,本文通过例子简单地介绍如何使用Cocoa获取Mac OS X的地址簿中联系人的各种信息,这样你也可以在自己的程序中导入系统的地址簿中联系人的各种信息了。

点击这里阅读全文 »

教程:如何制作AppleHelp帮助并嵌入到程序中

大部分应用程序都包括在线帮助文档。如果您也希望在自己的软件中包括帮助文档,您也许需要阅读这篇文章。本文简单地介绍了如何最简单地嵌入AppleHelp的方法。有了本文介绍的基础,您就可以开始制作自己软件的AppleHelp帮助了。

点击这里阅读全文 »

小技巧:如何快速将PDF文本转换为纯文本文件

在某些时候,你可能仅仅需要某个PDF文件中的文本,而在预览中复制粘贴后的文字基本没法看。

如果你只需要其中的文本,而不需要文字格式等其他的东西,可以在Terminal里使用下面的命令获取:

% /usr/bin/mdimport -d2 ../Book.pdf >& oopack.txt
 

存档:一个最简单的OS X程序框架

在某些情况下,你可能仅仅想写一个非常小的程序,仅仅用文本编辑器编辑一下,再用命令行编译就好,打开XCode占时间浪费生命是吧?如果是这样,建议你把这篇文章加入收藏夹,需要的时候,把下面这段小代码复制下来贴到一个文本里面,就是一个最简单的OS X程序框架了。

 

点击这里阅读全文 »

小技巧:如何获取当前已经登录的用户名

Cocoa中提供了获取登录用户名的简单函数,只需要调用即可:

使用NSUserName() 或者 NSFullUserName()这两个函数就能获取了。详细信息可以查阅ADC文档。

小技巧:如何在Cocoa中将定点数转化为浮点数

 FixMath.h里面提供了不少数据转换的函数,你需要用到的是FixedToFloat函数。

 

float blah = FixedToFloat(someFixedvalue);
 
如果需要使用其他函数,可以参考FixMath.h

小技巧:在程序未被激活时不隐藏Panel

NSPanel这种窗口形式有一个很讨厌的地方,在其他程序激活的时候,自身就会隐藏。如何关掉这种隐藏效果呢? 

其实只要在awakeFromNib中,加入如下代码:
 
[panel setHidesOnDeactivate: NO];
 
就可以防止在其他程序激活时,自身被自动隐藏了。

小技巧:使NSPanel窗口正确响应托管事件

在Interface Builder中默认设置的NSPanel会自动截获窗口的托管事件响应,你可以拖拽窗口的其他部位对窗口进行移动,可是这样一来,你自定义的托管操作就无法响应了。

其实这是Interface Builder默认设置的问题,在Interface Builder设置里,只要确保”Utility window””Non Activating Panel“都是选中的,就可以保证NSPanel对消息的正确响应。这一设置对Leopard的HUD类型窗口同样有效。

最新讨论