当前位置:网站首页>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-unary regression practice
- Data warehouse (1) What is data warehouse and what are the characteristics of data warehouse
- js data type, throttling/anti-shake, click event delegation optimization, transition animation
- 数电快速入门(二)(复合逻辑运算和逻辑代数的基本定律的介绍)
- 立方度量(Cubic Metric)
- LeetCode: 406. 根据身高重建队列
- PowerCLi 批量配置NTP
- UDP communication
- PCBA scheme design - kitchen voice scale chip scheme
- 【线性代数02】AX=b的2种解释和矩阵乘法的5种视角
猜你喜欢
NFT宝典:你需要知道NFT的术语和定义
Is the International Project Manager PMP certificate worth taking?
如何为Web3.0世界启动完美的DAO
Re24:读论文 IOT-Match Explainable Legal Case Matching via Inverse Optimal Transport-based Rationale Ext
Spss-系统聚类手算实操
实战:10 种实现延迟任务的方法,附代码!
模拟对抗之红队免杀开发实践
数电快速入门(三)(卡诺图化简法的介绍)
【ubuntu20.04安装MySQL以及MySQL-workbench可视化工具】
PRIMAL: Pathfinding via Reinforcement and Imitation Multi-Agent Learning Code Analysis
随机推荐
"Jianzhi offer" brush title classification
deepstream多相机显示布局
LayaBox---TypeScript---举例
matlab drawing
docker 搭建mysql 主从复制
Yolov7:Trainable bag-of-freebies sets new state-of-the-art for real-time objectdetectors
milvus配置相关
【uiautomation】微信好友列表获取(存储到txt中)
AXI interface application of Zynq Fpga image processing - the use of axi_lite interface
DSPE-PEG-Aldehyde, DSPE-PEG-CHO, Phospholipid-Polyethylene Glycol-Aldehyde A hydrophobic 18-carbon phospholipid
Qiangwang Cup 2022 - WEB
Spss-系统聚类软件实操
Red team kill-free development practice of simulated confrontation
PMP证书在哪些行业有用?
Driving point cloud format changes bring efficiency improvement
buu web
AI/ML无线通信
LocalDate时间日期包的用法
What does Xinchuang mean?Which industries are involved?Why develop Xinchuang?
STM32MP157A驱动开发 | 01- 板载LED作为系统心跳指示灯