当前位置:网站首页>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是什么
边栏推荐
- Flutter 实现背景图片毛玻璃效果
- Yolov7:Trainable bag-of-freebies sets new state-of-the-art for real-time objectdetectors
- ini怎么使用? C#教程
- 大势所趋之下的nft拍卖,未来艺术品的新赋能
- Three ways to set a specific device UWP XAML view
- Red team kill-free development practice of simulated confrontation
- 基于 Milvus 和 ResNet50 的图像搜索(部署及应用)
- Unknown point cloud structure file conversion requirements
- ue unreal 虚幻 高分辨率无缩放 编辑器字太小 调整编辑器整体缩放
- Analysis and treatment of Ramnit infectious virus
猜你喜欢
Driving point cloud format changes bring efficiency improvement
NFT宝典:你需要知道NFT的术语和定义
国内的PMP证书含金量到底如何
PMP证书在哪些行业有用?
PyTorch Geometric (PyG) 安装教程
如何一键重装win7系统?重装win7系统详细教程
立方度量(Cubic Metric)
js data type, throttling/anti-shake, click event delegation optimization, transition animation
8 年产品经验,我总结了这些持续高效研发实践经验 · 协同篇
SPSS-System Clustering Software Practice
随机推荐
webmine网页挖矿木马分析与处置
"Jianzhi offer" brush title classification
ini怎么使用? C#教程
LayaBox---知识点
可视化工作流引擎开发OA系统,让企业少花冤枉钱
y87.第五章 分布式链路追踪系统 -- 分布式链路追踪系统起源(一)
【PCBA program design】Grip dynamometer program
laravel whereDoesntHave
mysql基础
deepstream多相机显示布局
国际项目管理师PMP证书,值得考嘛?
27. Dimensionality reduction
驱动点云格式修改带来的效率提升
数电快速入门(五)(编码器的介绍以及通用编码器74LS148和74LS147的介绍)
input事件中文触发多次问题研究php DEBUG
Win11如何设置软件快捷方式?
Driving point cloud format changes bring efficiency improvement
国内的PMP证书含金量到底如何
ue unreal 虚幻 高分辨率无缩放 编辑器字太小 调整编辑器整体缩放
PCBA方案设计——厨房语音秤芯片方案