Cocoa学习

我的Cocoa/Cocoa Touch学习笔记

自定义UINavigationBar的背景

为了让我们的应用程序更加美观,我们往往希望对iPhone自带的控件进行一点自定义。比如,本文即将要讲述的,给UINavigationBar加一个背景。

最简单的一个自定义方法就是修改一下背景色。方法非常简单,那就是使用它的tintColor属性:

在Mac和iOS中注册自定义的URL Scheme

URL Scheme是类似http://ftp://afp://这样的东西,通常是用传输协议作为URL Scheme。不过事实上,你可以在iOS和Mac中注册任何类型的URL Scheme。当用户在浏览器中访问你的自定义URL Scheme的链接的时候,操作系统就会打开你的程序,响应这个请求。

要在程序中注册自定义URL Scheme非常简单。主要分为两个步骤:在程序的Info.plist中加入你需要注册的URL Scheme,然后在你的应用程序中加入处理这类请求的代码。

其中,第一个步骤对于iOS和Mac应用程序来说是完全相同的。方法如下:

在iOS程序中使用自定义字体

好久没有更新这里了,今天开始慢慢恢复更新。好了,废话不多说,开始讲正题。今天的话题其实也很简单,那就是在iOS中使用自定义字体。

虽然iOS自带的字体通常已经足够我们使用了,但是,对于某些特殊程序来说,比如,电子书程序,可能需要用到一些特殊的字体,或者需要用更好看的字体来达到我们想要的显示效果。不过,iOS是不支持系统级安装新字体的。不过在iOS 3.x中,我们已经可以用一个很简单的方法来使用自定义字体了。

我们来创建一个简单的iOS项目来做演示。在界面上拖入一个UITextView,在代码中创建一个IBOutlet指向这个UITextView。我们从OSX中找一个iOS下没有的字体,比如:PTSans.ttc(这个也是Octopress模版的默认字体,我很喜欢这个字体),拖放到项目中。

打开info.plist,增加一个新的Array类型的键,键名设置为UIAppFonts(Fonts provided by application),增加字体的文件名:“PTSans.ttc“。

然后我们就可以在程序中调用这个字体了:

把程序移动到/Applications文件夹

OSX有一个非常好的文件系统结构,默认的文件系统职能明确。一个很典型的例子是Applications文件夹,专门用来存放Mac应用程序。不过有时用户在下载了你的应用程序之后并没有养成把程序放到/Applications的习惯,你可以选择不去干预,也可以通过一个友好的提示来帮助用户把程序移动到/Application文件夹中。

要在程序中实现这样的功能其实很简单,因为已经有人帮我们实现了这样的一个方法:LetsMove。使用方法也很简单,在ApplicationDelegate中的-applicationDidFinishLaunching:方法的最前面增加一行代码,如下:

在OS X Lion下编译APUE的示例代码

本文和Cocoa关系不大,不过UNIX开发也是OSX开发的一个重要组成部分,所以我就放在这里了。Advanced Programming in Unix Environment这本书的源码不能直接编译,网上也没有文章(除了这篇看不懂的棒子写的文章)详细说明这本书源码的用法,这里简单的说明一下:

在Cocoa里玩转Dock图标

今天我们来看一看如何在Cocoa程序中自定义Dock图标。Dock图标的自定义主要包括四方面:

  • 加徽章(Badge)
  • 换图标
  • 隐藏和显示最小化时的图标徽章
  • 增加自定义Dock菜单

本文将对如何进行这四方面的自定义进行简单的介绍,并且在最后研究一下腾讯QQ for Mac独特的Badge机制。本文的示例代码使用了Acorn和腾讯QQ的图标做例子,请这两家厂商不要介意。