Mac OS X Programming读书笔记5 - Controls
来源:互联网 发布:淘宝轮播图片怎么制作 编辑:程序博客网 时间:2024/05/16 09:41
Chapter 5 Controls
1 Command Signatures and Control IDs
1. 可以将Command和Control联系起来,但是当你收到事件的时候,你并不知道当时是哪个Control被按下了。事实上,你也不需要关心,因为Command本来被设计成代表命令,至于是点击Button还是选择菜单都没有关系
2. 当你需要知道Control究竟发生了什么事情的时候,你需要给Control分配一个Control ID,包括:
a. Signature:一个4个Char的标记,一般来说应该是程序的Creator Code,也就是Application本身的Signature。大部分情况下,单一程序的所有Control ID的Signature都是一样的
b. ID:一个整数,真正的独立在此程序中标记该Control的ID
2 Buttons
1. Bevel Button
2. ImageWell
3 Radio Buttons
系统负责维护Radio Button的状态,不需要自己编程处理。
1: ControlHandle numBeepsRadioButtonGroup;
2: ControlID numBeepsControlID = { kControlSignature, kRadioGroupControlID };
3: GetControlByID( window, &numBeepsControlID,
&numBeepsRadioButtonGroup );
SInt32 numBeepsValue;
4: numBeepsValue = GetControl32BitValue( numBeepsRadioButtonGroup );
1. 声明一个Control的Handle
2. 声明Control的Control ID,也就是这个Radio Button Group的ID
3. 通过Control ID获得Control的Handle
4. 通过Handle获得Control的32-bit整数值,表示哪一个Radio Button被按下了
4 Checkboxes
和上面的非常类似,GetControl32BitValue返回0说明没有Check,1则为Checked
5 Text Input Fields
应该使用GetcontrolData来获得Text Input Fields所对应的字符串:
OSErr GetControlData(
ControlRef inControl,
ControlPartCode inPart,
ResType inTagName,
Size inBufferSize,
void * inBuffer,
Size * outActualSize );
1. ControlRef inControl:ControlRef也就是ControlHandle,所以直接传递用GetControlByID的返回值即可
2. ControlPartCode inPart:指定访问Control的哪一部分,部分Control由多个Control组成,由不同的常量代表不同的子控件。如果没有子控件,可以传递kControlEntireControl代表整个控件本身
3. ResType inTagName:数据的类型,对于Text Input Field应该传递kControlEditTextCFStringTag
4. Size inBufferSize:缓冲区大小
5. Void *inBuffer:缓冲区本身
6. Size *outActualSize:实际大小
举例如下:
CFStringRef theString;
GetControlData(
stringInTextEdit,
kControlEntireControl,
kControlEditTextCFStringTag,
sizeof( CFStringRef ),
&theString,
NULL );
同样的,可以用SetControlData来设置Text Input Field的字符串:
OSErr SetControlData(
ControlRef inControl,
ControlPartCode inPart,
ResType inTagName,
Size inSize,
void * inData);
- Mac OS X Programming读书笔记5 - Controls
- Mac OS X Programming读书笔记5 - Controls
- Mac OS X Programming读书笔记5 - Controls
- Mac OS X Programming读书笔记2 - HelloWorld
- Mac OS X Programming读书笔记4 - Windows
- Mac OS X Programming读书笔记2 - HelloWorld
- Mac OS X Programming读书笔记4 - Windows
- Mac OS X Programming读书笔记4 - Windows
- Mac OS X Programming读书笔记2 - HelloWorld
- Mac OS X Programming
- Mac.OS.X.Programming
- Mac OS X Programming读书笔记1 - 系统架构
- Mac OS X Programming读书笔记3 - 事件处理
- Mac OS X Programming读书笔记1 - 系统架构
- Mac OS X Programming读书笔记3 - 事件处理
- Mac OS X Programming读书笔记3 - 事件处理
- Mac OS X Programming读书笔记1 - 系统架构
- Mac OS X - Application's Development (1) - C++ Programming
- 焦虑中的马甲
- Google的小秘密
- 如何理解ERP
- 证券基本名词
- 关于struts2
- Mac OS X Programming读书笔记5 - Controls
- 男人不坏,女人不爱?
- 技术人员行走职场三大陷阱之“熟人借钱”
- 性、开源与商业
- 保存和组织Fieldstones的工具
- 色彩教材
- 性格左右命运,气度决定格局。
- 如何制作客家甜酒?
- 成功的人应该记住的10个故事