当前位置:网站首页>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是什么
边栏推荐
- Android 面试——如何写一个又好又快的日志库?
- 开发deepstram的自定义插件,使用gst-dseaxmple插件进行扩充,实现deepstream图像输出前的预处理,实现图像自定义绘制图(精四)
- AtCoder Beginner Contest 262 D - I Hate Non-integer Number
- 数电快速入门(二)(复合逻辑运算和逻辑代数的基本定律的介绍)
- 国内的PMP证书含金量到底如何
- js data type, throttling/anti-shake, click event delegation optimization, transition animation
- milvus配置相关
- 【PCBA方案设计】握力计方案
- 信创是什么意思?涉及哪些行业?为什么要发展信创?
- 命名路由、组件中name的作用
猜你喜欢

数电快速入门(四)(组合逻辑电路的分析以及设计的介绍)

Zynq Fpga图像处理之AXI接口应用——axi_lite接口使用

Spss-一元回归实操

PMP证书在哪些行业有用?

七夕特制:《牛郎会织女》
![[Teach you to use the serial port idle interrupt of the STM32HAL library]](/img/9e/88a11727e1452315edc2c8ac74690e.png)
[Teach you to use the serial port idle interrupt of the STM32HAL library]

PRIMAL: Pathfinding via Reinforcement and Imitation Multi-Agent Learning Code Analysis

EasyGBS接入最新版海康摄像头后无法传递告警信息该如何解决?
![[Linear Algebra 03] Elimination method display and 4 solutions of AX=b](/img/29/fd79222e5bec26851974abd86a2013.png)
[Linear Algebra 03] Elimination method display and 4 solutions of AX=b

【SQL之降龙十八掌】01——亢龙有悔:入门10题
随机推荐
信创是什么意思?涉及哪些行业?为什么要发展信创?
传奇服务器需要什么配置?传奇服务器租用价格表
Moke, dynamic image resource package display
Analysis and treatment of Ramnit infectious virus
1.读写点云文件
如何根据“前序遍历,中序遍历”,“中序遍历,后序遍历”构建按二叉树
可视化工作流引擎开发OA系统,让企业少花冤枉钱
ROS packages visualization
Codeforces Round #811 (Div. 3)
ini怎么使用? C#教程
CPU、内存、显卡等硬件因素也影响着你的深度学习模型性能
零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
ES6高级-async的用法
实战:10 种实现延迟任务的方法,附代码!
DSPE-PEG-Aldehyde,DSPE-PEG-CHO,磷脂-聚乙二醇-醛基一种疏水18碳磷脂
webmine网页挖矿木马分析与处置
milvus配置相关
docker 搭建mysql 主从复制
Webmine Webpage Mining Trojan Analysis and Disposal
【线性代数03】消元法展示以及AX=b的4种解情况