Xcode 4 中使用自定义字体,非 Outlet 方式

在 Xcode 3 的时代,如果要使用自定义字体,只要把字体安装到系统中,就能够在 Interface Builder  中字体列表中选择到,当然需要把字体文件加到项目中,并且在 Xxx-Info.plist 文件中列举出来。

而到了 Xcode 4 后,要用个自定义的字体反而更难了,字体安装到了系统中,它也不会出现在 Interface Builder 中的字体列表,必须用 setFont 为需要的控件应用自定义字体,这是一个浩大的工程,要么遍历控件,要么就得为控件与 IBOutletCollection 关联起来。

难道是 Apple 不希望看到应用中各色字体令人眼花缭乱的景象,所以制造点障碍。也不知道新的  Interface Builder 中的字体列表由哪得来的,是否能把自己的字体出现在该列表中呢?这个嘛,有点难。

既然不想使用 setFont 方法对 Xib 中的众多的控件一一设置字体,那就得另寻 Hack 方法了,幸好有了 FontReplacer 的方法。FontReplacer 是为 UIFont 做的一个 Category,它的实现原理是利用 method_exchangeImplementations 机制把 UIFont 的 fontWithName:size:fontWithName:size:traits: 换成自定义的方法,然后在自定义的方法中按照预设置的字体映射,当遇到某个系统字体 A 时,换成自定义的字体  Custom-A。

而你所要做的就是在 Interface Builder 中寻找字体,自己记住当选用了 系统字体 A,运行时会是 Custom-A 字体,系统字体 B 运行时会是 Custom-B,根据需要自己映射就行。一般方便起见,我们会选择一种字体(Family),然后用它的 Style 来与我们的自定义字体对应。这样只需要 Interface Builder 里像往常一样设置字体就行了,从而达到一劳永逸。 阅读全文 >>

Xcode 4.4/4.5 新特性 / LLVM 4.0 新语法

跟着苹果干的好处就是,有什么新特性就尽快的就享用它们,这非常符常程序员们的学习心态。不像国内的某些技术领导,他们很领会某种舞台上的精髓 -- 稳定压倒一切 ,JDK 1.6 都出来了,还不少项目还牢牢固守在 JDK 1.3 上,程序员真是无言而又苦 B 啊。当然你在使用  Objective-C 时能时刻得到更新也得利于 Obj-C 完全由 Apple 主导,免了不少口水,瞧瞧 C++ 到 C++11,历时 13 年啊。

OK,言归正传,Xcode 当前版本 4.5.2,来看下自 4.4 以来它给我们带来了什么语言上的新特性。每个版本有新特性时一定要看官方的  What's New in Xcode。这么说来 Xcode 4.4 也算是个关键性的版本更新。

@ 不光可用于创建 NSString,还简单化了 NSNumber,NSArray 和  NSDictionary 对象的创建,一一来看。

@ 创建 NSNumber 实例

从 Xcode 4.4 起,无段  [NSNumber numberWithInt: 10] 这么写了,@10 就完事,下面是各种数值类型的 NSNumber 创建方式: 阅读全文 >>

让 Xcode 4 自动补全 []、 ""、 ''、 () 的插件

我现在所使用 Xcode 4 Beta 5 尚不支持对  []、 ""、 ''、 () 的自动补全,本插件是由 CocoaChina 版主 “yoyokko” 制作的 Xcode Plugin Plus for Xcode 4 可以帮您实现 Xcode 4 对 []、 ""、 ''、 () 符号的自动补全。

例如输入左中括号,自动补全右中括号,并且光标停在括号中间,在删除左中括号时,右中括号也自动删除。对双引号,单引号,圆括号也是一样的。大括号在 Xcode 中已能自动处理,输入一个左大括号,回车后就会补全右大括号。

本插件的安装方法如下:

1. 安装 SIMBL(SIMBL is the SIMple Bundle Loader),在  http://www.culater.net/software/SIMBL/SIMBL.php 下载 SIMBL-0.9.9.zip (Snow Leopard and Leopard),Lion 系统也可以用这个版本 阅读全文 >>

Xcode4 相较于 Xcode3 使用中一些体验

从 Xcode3 升级到 Xcode4 的一些使用体验:

1. 注释的时候更智能,按 Command + / 时不会像 Xcode3 里那样在光标处插入 //,而是会在行首加 //,并且多行注释时 // 很整齐了

2. 大括号有自动补齐的功能了,方法后输入左花括号 { 后,右边的花括号 } 由 Xcode 自动加上。

3. 智能提示中的内容丰富的多,方法的参数返回类型看得很清楚,尚不明最前面标识的 K、f、P、V、x、T、C、M、#等是什么意义,不过也差不多有些概念了。

4. @interface 的模板也不一样了,出现默认 @private 修饰关键字,这是对的,默认的实例变量应该是隐藏的,@interface 的模板是:

@interface <# class name #> : <# superclass #> { 阅读全文 >>

Xcode 4 常用快捷键(和 Xcode 3 有些不一样了)

把 Xcode 由 3.2.5 升级到 Xcode 4.0.2 之后,满以为快捷键总该不会变化太大吧,没想又要经历一个快捷键的适应过程,发现有些在 Xcode 3.2.5 中的快捷键到了 4 之后不灵光了。所以把之前的 http://yanbin.blog/xcode-3-shortcuts 标题也由原来的标题“XCode 中我的常用快捷键” 改为“XCode 3 中我的常用快捷键”,还在使用 Xcode 3 的可以回去看下,我想也是该丢弃 Xcode 3 的时候了。

主菜单调整的大,Build, Run 都没啦,快捷键的变动自然就大。再由于 Interface Builder 已经内建到 Xcode 中了,所以先前的 command + 数字 显示出相应面板的快捷键被替代为 command + option + 数字 了,但也不是直接对应的。连 option + command + up 在 .h 和 .m 间切换的快感的体验不到了,有触摸板的朋友请用三个手指上下划动来切换,对于 iMac 或黑苹果就不爽了。

对于 Xcode 4 的快捷键直接上两张图吧,其实这两种图是一样的,只是背景色不一样,白底的可以打印出来贴在照壁上,每天可以审视。

阅读全文 >>

Xcode 4 的新特性介绍

今天由 Xcode 3.2.5 升级到了 Xcode 4.0.2,Xcode 4.0.2 居然也要付费了,4.99 美刀,系统要求 Mac OS X 10.6.6 以上。安装之后发现有很大的不同,最让人意外的是居然连一些快捷键也变了,像 command + option + up 都没法在 .h 和 .m 文件间切换了,Interface Builder 就面目全非了。不过还好,反正使用 Xcode 3.2.5 的时间也不长,才三个星期左右,放心的忘了旧版本吧,努力去适应。苹果的风格是不想让人回头的,基本上一旦升级到新的版本上来,以后都不会有机会需要使用旧的版本的,何不让自己也 keep updated 呢?

关于 Xcode 4.0. 2 的新性可以直接看官方的介绍:What's New in Xcode 4Developer Tools Features。别看标题是 What's New in Xcode 4,好像讲的是 Xcode 4 的新特性,但这个链接并未受限于 4 这个版本,保管 Xcode 5 出来后同样是前面的链接内容却是 Xcode 5 的新特性了。

这里把别人翻译的 What's New in Xcode 4 转载到这里来,稍事整理。请对我们的开发工具更多些了解吧,用处呢,会很明显的。 阅读全文 >>

XCode 3 中我的常用快捷键

适时的使用快捷键会提高工作的效率,可以让你的手尽量少的在键盘与鼠标间漂移,就像玩帝国与星际时不用快捷键一般会死得快一样,当然不乏一些特牛的人了。培养使用快捷键最好的办法是,当你需要用哪个菜单项,点击鼠标的同时请留言所提示的快捷键,下次尽量用快捷键来做同样的事情,培养习惯,甚至是肌肉记忆。记得 Eclipse 有那么一个插件,当你用鼠标操作了,如果有相应的快捷键,它会在显著的地方告诉你对应的快捷操作键。

下面是我日常中使用 概率比较高的 XCode 快捷键键。假如你用的是 PC 键盘的话,就要分清哪个是 Command 键,哪个是 Option。比如同一个 USB PC 键盘,我在 VirtualBox 中装的 Mac 系统,Alt 是 Command 键,Win 是 Option 键,VMWare 中的 Mac 系统则相反。

1.  esc                自动完成, 作用和VS中的ctrl+j类似,像 Eclipse 的 alt+/
      control + , 与上面相同的功能
2.  command + /                 注释代码和反注释,用 //,相当于 Eclipse 的 ctrl+/
3.  command + option + 上箭头  快速在头文件(.h)和实现文件(.m)之间切换
4.  command + b             编译程序,不运行
5.  command + return        编译并运行程序
6.  command + shift + b       打开编译结果窗口,显示编译详细信息

阅读全文 >>