当前位置:网站首页>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是什么
边栏推荐
- 数电快速入门(三)(卡诺图化简法的介绍)
- 搬走地下空间开发利用“绊脚石” 中地数码取得地下空间透明化技术突破
- Zynq Fpga图像处理之AXI接口应用——axi_lite接口使用
- Domestic PMP certificate of gold content how
- PowerCLi 批量配置NTP
- 零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
- DSPE-PEG-Aldehyde, DSPE-PEG-CHO, Phospholipid-Polyethylene Glycol-Aldehyde A hydrophobic 18-carbon phospholipid
- JdbcTemplate概述和测试
- ROS packages visualization
- proe和creo的区别有哪些
猜你喜欢

NFT宝典:你需要知道NFT的术语和定义
![[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]

docker 部署redis集群

如何一键重装Win11系统 一键重装系统方法

How to solve the problem that the alarm information cannot be transmitted after EasyGBS is connected to the latest version of Hikvision camera?

数电快速入门(二)(复合逻辑运算和逻辑代数的基本定律的介绍)

基于 Milvus 和 ResNet50 的图像搜索(部署及应用)

数电快速入门(三)(卡诺图化简法的介绍)

C语言知识大全(一)——C语言概述,数据类型

开发deepstram的自定义插件,使用gst-dseaxmple插件进行扩充,实现deepstream图像输出前的预处理,实现图像自定义绘制图(精四)
随机推荐
实战:10 种实现延迟任务的方法,附代码!
Spss-系统聚类手算实操
立方度量(Cubic Metric)
大势所趋之下的nft拍卖,未来艺术品的新赋能
用Tesseract开发一个你自己的文字识别应用
How to solve the problem that the alarm information cannot be transmitted after EasyGBS is connected to the latest version of Hikvision camera?
Yolov7:Trainable bag-of-freebies sets new state-of-the-art for real-time objectdetectors
【PCBA方案设计】握力计方案
经验分享|盘点企业进行知识管理时的困惑类型
Qiangwang Cup 2022 - WEB
拼多多开放平台订单信息查询接口【pdd.order.basic.list.get订单基础信息列表查询接口(根据成交时间)】代码对接教程
PCBA scheme design - kitchen voice scale chip scheme
路由中的meta、params传参的一些问题(可传不可传,为空,搭配,点击传递多次参数报错)
【PCBA program design】Grip dynamometer program
What does Xinchuang mean?Which industries are involved?Why develop Xinchuang?
Red team kill-free development practice of simulated confrontation
数电快速入门(二)(复合逻辑运算和逻辑代数的基本定律的介绍)
七夕特制:《牛郎会织女》
Arduino 电机测速
Dotnet using WMI software acquisition system installation