当前位置:网站首页>Cocoa Application-基础
Cocoa Application-基础
2022-08-04 21:37:00 【彭同学她同桌】
XIB中File’s Owner是因公程序的NSApplication对象 NSApplication对象从时间队列中取得事件 转发给相应的窗口
指向别的对象的成员变量指针叫做outlet 可悲用户界面出发的方法叫做action
IBAction等价于void
awakeFromNib
NIB文件是应用程序所有对象的存档
当程序启动后 对象从文件中释放 重新赋予声明 准备接收用户出发的事件信息
在获得声明后 并没有接收到用户的事件信息以前 所有的对象自动发送awakeFormNib消息
awakeFromNib
运行过程
首先运行NSApplicationMain函数
创建一个NSApplication的实例
应用程序对象读取main NIB文件内容 将归档的对象释放出来
NIB文件中的每个对象都发送awakeFromNib消息
应用程序对象开始检查是否有时间发生
当应用程序接收到鼠标键盘发送的事件后 窗口服务器将事件数据放到合适的应用程序事件队列中
应用程序对象从事件队列中读取事件数据 转发给用户界面对象(如按钮) 就出发了程序代码
如果程序改变了界面中的数据 界面就会被重新绘制 然后应用程序继续检查他的事件队列 接收下一个事件
检查时间队列的过程以及动作组成了整个主程序的事件循环
当用户选择从菜单中退出时 NSApp接收到一个terminate:消息 终止进程 应用程序销毁所有对象
关于target和action
target是一个指向对象的指针
action就是一个消息
例如单击按钮时 按钮将action发送给他的target
action方法中的sender参数使得接受这知道时那个控制发送的消息
比如
BOOL isOn = [sender state];//查看按钮是否被勾选上
NSControl继承关系图

NSSlider
右边栏里勾选continuous则滚动条移动时会不断的发送action消息 如果不勾选则是在鼠标释放后才发送action消息
NSTextField
NSTextField类的实例文本框允许用户输入一行文字 可以设置:可编辑 不可编辑
Action
button需要绑定一个IBAction 在按下的时候就要调用这个action
对于button来说 他只需要绑定一个行为 -(IBAction)xxx:(id)sender; //这样点击这个按钮的时候就会发送这个消息
outLet
文本框就需要指定一个outLet 在输入后传数据给outLet对象
lebel
@property (weak) IBOutlet NSTextField *lebel;
setObjectValue:
NSString *string = [_test stringValue];//从_test绑定的文本框中获取输入的值
[_lebel setObjectValue:[NSString stringWithFormat:@"%@ num:%d",string, [string length]]];//通过setOBjectValue设置lebel要显示什么
help
很多类都有一个delegate成员变量
可以设置该变量指向一个helper对象
问题
IBOutlet是什么修饰符 被IBOutlet修饰的应该就是target 可以用来指向控件的指针
IBAction和void有区别吗
怎么删除控件:command+删除键
cell是什么
边栏推荐
- Spss-系统聚类手算实操
- dotnet enables JIT multi-core compilation to improve startup performance
- LayaBox---知识点
- Excel商业智能-Power BI电商数据分析实战
- 【SQL之降龙十八掌】01——亢龙有悔:入门10题
- 强网杯2022——WEB
- UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd6 in position 120: invalid continuation byte
- 国内的PMP证书含金量到底如何
- 动手学深度学习_NiN
- STM32MP157A驱动开发 | 01- 板载LED作为系统心跳指示灯
猜你喜欢
随机推荐
Dotnet using WMI software acquisition system installation
OD-Model【6】:YOLOv2
Chapter7 : Network-Driven Drug Discovery
Ramnit感染型病毒分析与处置
moke、动态图片资源打包显示
milvus配置相关
知识分享|如何设计有效的帮助中心,不妨来看看以下几点
信创是什么意思?涉及哪些行业?为什么要发展信创?
Analysis and treatment of Ramnit infectious virus
docker 搭建mysql 主从复制
传奇服务器需要什么配置?传奇服务器租用价格表
UDP通信
ROS packages visualization
数电快速入门(三)(卡诺图化简法的介绍)
AI/ML无线通信
Yolov7:Trainable bag-of-freebies sets new state-of-the-art for real-time objectdetectors
模拟对抗之红队免杀开发实践
Unknown point cloud structure file conversion requirements
NFT宝典:你需要知道NFT的术语和定义
dotnet delete read-only files








