• Cocoa Application-基础


    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;
    
    • 1

    setObjectValue:

    NSString *string = [_test stringValue];//从_test绑定的文本框中获取输入的值
    [_lebel setObjectValue:[NSString stringWithFormat:@"%@ num:%d",string, [string length]]];//通过setOBjectValue设置lebel要显示什么
    
    • 1
    • 2

    help

    很多类都有一个delegate成员变量
    可以设置该变量指向一个helper对象

    问题

    IBOutlet是什么修饰符 被IBOutlet修饰的应该就是target 可以用来指向控件的指针
    IBAction和void有区别吗
    怎么删除控件:command+删除键
    cell是什么

  • 相关阅读:
    1分钟快速实现Redis数据对比
    C++中引用类型做做右值
    面试官:Redis如何保证高可用?
    Linear Regression in mojo with NDBuffer
    Linux命令--权限(chmod、chown)--使用/实例
    Java序列化有什么作用
    wxpython分页
    LeetCode----120. 三角形最小路径和
    java面试题-基础篇(万字总结,带答案,面试官问烂,跳槽必备)
    vue.js毕业设计,基于vue.js前后端分离在线考试系统(H5移动项目) 开题报告
  • 原文地址:https://blog.csdn.net/qq_43535469/article/details/126144355