|
  
- UID
- 5007
- 帖子
- 268
- 精华
- 1
- 积分
- 1807
- 麦客币
- 420 枚
- 贡献度
- 294 度
- iChat
-
- 所用苹果
-
- 阅读权限
- 180
- 在线时间
- 585 小时
- 最后登录
- 2008-11-22
|
7楼
发表于 2008-1-12 01:18 AM
| 只看该作者
【01-12】 [翻译]Project:Omega cocoa教程3 - Preferences 预置
原网址: http://www.projectomega.org/arti ... tuts_cocoa3&p=15 j/ O' N6 c0 f: h/ n1 d
3 j# G- X! L& g# e9 Y7 t5 r0 t
cocoa教程3 - Preferences 预置& ]1 o0 \* W' z% L
9 a( ^9 P y+ |6 o; X
新Project( r4 c0 B% _9 d7 ]$ d$ \4 V4 v% B
2 y+ n3 P3 t- q5 \( y% [ @- v
先创建一个新的project :1 x' e" ]* T. k% T4 h7 Z9 P- T! }
! ~0 t! M# @) m1 ]3 t6 B9 m启动 Xcode
6 `- C0 S1 g" J, x- o& v2 n& p7 hFile 菜单 : New Project9 R* a2 X' _. J4 V& f+ H+ f. n
在对话框里, 选择 "Cocoa Application"
, R: { O ^; m7 m2 ~, ~点击 Next) I* V8 v+ O: p |2 M- }
Project 名 : POPreferences
7 q: T9 C+ F7 a2 x6 o点击 Finish
; T$ y: E w, s % J1 \/ I2 |1 g/ v
现在来设置一个 preference 预置文件:
2 B% Y5 B. K/ H7 F' f* o
' ~4 c+ E( R# ^0 a# D; L( R& r点击 Targets 组别左边的小箭头
. @* K/ u3 I( ?6 v3 i9 t: d双击里面的 POPreferences
! g% z; b2 S2 e: ~% F点击 Propertities
& o$ a( W( j* R3 n在 identifier 一栏, 输入 "org.projectomega.popreferences", 或者其他你喜欢的. 应用程序的预置设置将存储在一个名为这个的plist文件中, 该文件的默认路径是 ~/Library/Preferences/
& ^/ |) K& J2 h8 N0 _2 V! {% q
! h$ Y! n7 L9 P% H! y这里使用的是 Java类型的规则来命名这个 preference 预置文件, 这也是苹果推荐的 (某种程度是URL地址反过来写). 这样做主要的一个好处是 preference 文件将会按出品公司归在一起.! v+ V2 W* K) J
* X# [- E2 R) V' `6 O* k; _使用 Interface Builder 来设计
: t$ R& R& }6 M
; d. w1 Z$ {9 m$ I+ x4 y/ U现在来设计本教程要用到的对话框.
. E7 w' J% m6 y: j% K
p @! Z- \7 x4 N, V, R在 Xcode 里展开 "Resources" 组别! ^" d8 J: @/ H+ C
双击 MainMenu.nib 启动 Interface Builder 打开它.: f3 ~; f' t5 h
把你的窗口改成象下面的样子. 这包括大多数 preferences 要用到的控件. Radio控件默认是2个供选择项, 可以在Attributes Inspector里的Cells一栏改成需要的数目. 另外, 需要在 Radios 每一项的Attributes Inspector里设置它们的tag分别为:0, 1, 2, 3, 对应于 Radio 1, Radio 2, Radio 3, Radio 4, 在后面将用到. 要选中单独的某个 Radio 项, 可能需要点击几次对应项, 直到这一项被高亮显示.
( N6 z, a) ]$ o; j/ B% {. o
1 I7 _: S/ @! d0 H; }创建 Outlets/Actions
8 Q3 q0 h/ V! _* B# P3 V( }% d0 C* `
5 V( N0 q1 F/ m( l( C) x现在要为这个对话框生成一个 controller 物件, 并添加 outlets/actions, 用前一个教程里同样的方法.: y# {4 f2 N, y
7 [$ J$ t8 U3 t9 v
点击 Library 面板
) @6 o5 n0 [- s7 L2 e, t% q7 T拖动一个 NSObject 到 MainMenu.nib 窗口内
0 V; p1 Q3 a5 u4 R8 ]: G8 c3 H3 W在Identity面板里命名class为 " PrefController "" r6 C) f) M& ], [( D1 v `: {
添加5个 outlets (每个控件一个) 和 2个 actions, 并按下图命名:" s( ^4 h# L% l5 A' ]5 E0 F* z/ g
7 ^ F& b/ {, @* y U" B" @: [
现在, 创建 PrefController 类:
4 T: f! t9 |9 I5 e- L' u象上个教程里一样, 先回到Xcode, * ~7 D( D( y/ Z/ `' X$ h
File 菜单, New file, 选择 Objective-C Class, 命名为PrefController.m, finish完成, 生成 PrefController.h and PrefController.m.
, r7 {4 h# k: H1 P/ D$ T5 W再回到 Interface Builder, 确认选择 MainMenu.nib 里的 PrefController, 然后5 J" _8 v* w0 i9 p# y' O8 [7 H9 }
File 菜单, Write class file, 选择project所在路径(如果默认值不是的话), 之后 replace 替换.' U8 e! a1 Q1 ]$ T, o6 U6 @
现在Xcode里面这两个新文件应为以下内容:- #import <Cocoa/Cocoa.h>
- @interface PrefController : NSObject {
- IBOutlet id PrefEdit;
- IBOutlet id PrefPopup;
- IBOutlet id PrefRadios;
- IBOutlet id PrefSlider;
- IBOutlet id PrefSwitch;
- }
- - (IBAction)PrefRestoreAction:(id)sender;
- - (IBAction)PrefSaveAction:(id)sender;
- @end
复制代码- #import "PrefController.h"
- @implementation PrefController
- - (IBAction)PrefRestoreAction:(id)sender {
-
- }
- - (IBAction)PrefSaveAction:(id)sender {
-
- }
- @end
复制代码 [ 本帖最后由 sweec 于 2008-1-12 03:39 编辑 ] |
附件: 您所在的用户组无法下载或查看附件
-
1
评分次数
-
|