在Xcode Interface Builder或Storyboard中,可建立到输出口(IBOutlet)和操作(方法,IBAction)的连接。

IBOutlet are for output Controls like Labels and TextFields, while IBAction are mostly for Objects like Buttons.

到 IBOutlet的连接可以实现在代码中引用和使用 UI 元素,如Label、TextBox等等;

— 创建连接的方法(1) :按住Control 键,并从场景的View Controller 图标,拖曳到视图中可视化 UI 上;释放按键,将出现一个下拉列表菜单,其中列出了可供选择的IBOutlet(输出口,或变量),正确选择即可。

— 创建连接的方法(2) :按住Control 键,并从可视化的 UI 元素(如Label、TextField等等)上拖曳到对应的interface 头文件上。Xcode 在屏幕上显示一条线,表示连接。在幕后,Storyboard中添加一段XML语句,表示上述连接。

在释放按钮后,将弹出窗口,让你配置连接参数。在Connection 字段选择 IBOutlet 作为连接类型。同时,指定IBOutlet参数名称(Name),后面的代码中会使用到。另外,正确选择对象类型Type和存储类型 Storage,如下图所示:

右击 TextField UI 元素,将弹出 Connection Objects 列表。可以看到Reference Outlets节点,TextField 和View Controller之间的连接;另外, 在头文件中,也可以看到IBOutlet变量前面有一个点,表示已建立了连接。如下图所示:

到IBAction 的连接,定义了一个UI 事件,如点击按钮Button,该事件将执行操作方法(也就是触发代码中的方法)。

— 创建连接的方法(1) :首先在Interface Builder 界面,选择需要调用或关联操作的 UI 元素,如Button,并点击 Utility 区域顶部的箭头头部(Connections Inspector -连接检查器)。Connections Inspector 显示了当前对象(Button)所支持的事件列表,可单击相应方法的圆圈,并将其拖曳到文档大纲区域中的View Controller 图标上。

在释放鼠标,选择相应的操作或方法,即可完成。

— 创建连接的方法(2) :选择Button,重复上面的操作方法。但是这一次,选择IBAction作为连接。

可注意到 Type 变为id,且出现了2个新的配置项:Event 和 Arguments。对于 Event,可选择 Touch Up Outside,对于 arguments 项,保持默认的 Sender 值。点击Connect按钮,在头文件中创建相应的代码,并建立连接。

下图是建立和IBOutlet 和 IBAction 连接之后,interface 文件中变量和方法前面的点标识示意:

***Xcode Interface Builder或Storyboard中可建立那两种连接?的更多相关文章

  1. XCode Interface Builder开发——2

    XCode Interface Builder开发--2 简单的练手项目--仿苹果自备的计算器 简介 制作一个简易功能的计算器并非难事,但是其中要考虑的不同情况却仍有许多,稍不留神就会踩坑. 例如: ...

  2. XCode Interface Builder开发——1

    XCode Interface Builder开发--1 创建Xcode项目 选择第二个选项 选择Single View App,点击Next 设置完后点击Next Xcode基本面板 导航面板 工具 ...

  3. MySQL中MyISAM和InnoDB两种主流存储引擎的特点

    一.数据库引擎(Engines)的概念 MySQ5.6L的架构图: MySQL的存储引擎全称为(Pluggable Storage Engines)插件式存储引擎.MySQL的所有逻辑概念,包括SQL ...

  4. [转]Qt中定时器使用的两种方法

    Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 其精确度一般依赖于操作系统和硬件,但一般支持20ms.下面将分别介绍两种方法来使用定时器. 方法 ...

  5. linux内核分析作业4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    系统调用:库函数封装了系统调用,通过库函数和系统调用打交道 用户态:低级别执行状态,代码的掌控范围会受到限制. 内核态:高执行级别,代码可移植性特权指令,访问任意物理地址 为什么划分级别:如果全部特权 ...

  6. Java中HashMap遍历的两种方式

    Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...

  7. jqGrid中实现radiobutton的两种做法

    http://blog.sina.com.cn/s/blog_4f925fc30102e27j.html   jqGrid中实现radiobutton的两种做法 ------------------- ...

  8. php获取数组中重复数据的两种方法

    分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...

  9. jQuery中开发插件的两种方式

    jQuery中开发插件的两种方式(附Demo) 做web开发的基本上都会用到jQuery,jQuery插件开发两种方式:一种是类扩展的方式开发插件,jQuery添加新的全局函数(jQuery的全局函数 ...

随机推荐

  1. 019C#中使用移位运算符获取汉字编码值

    在进行移位运算时,当数值的二进制数每次向左移1位就相当于乘以2,当数值每次向右移一位就相当于除以2 private void button1_Click(object sender, EventArg ...

  2. GraphLab面向机器学习的并行框架『针对图数据处理模型』

    最近在做文本处理知识的梳理,关注了CMU提出的GraphLab开源分布式计算系统 这是关于GraphLab的PPT:Distributed GraphLab『 http://cheng-qihang- ...

  3. Azure SQL 数据库与新的数据库吞吐量单位DTU

    azure中新的数据库吞吐量单位 (Database Throughput Unit, DTU) 是什么,以及用户如何通过它来了解新服务级别可以提供的服务内容.DTU 对于提供预测性更强的性能体验起着 ...

  4. golang的nil

    golang中什么样的类型可以赋值nil? 类型文档中有注定"uninitialized value is nil"的类型都可以赋值nil. golang的基本类型不能赋值nil: ...

  5. nodejs base64 编码解码

    普通字符串 编码解码: var b = new Buffer('JavaScript'); var s = b.toString('base64'); // SmF2YVNjcmlwdA== var ...

  6. Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法的函数存根

    今天算是研究了一天的SqlFunctions,请教了几个群的牛人,居然发现大伙对这个都比较陌生, 有的甚至直指EF中是不能调用sqlserver里的方法的. 因为之前搞过linq to sql 里面的 ...

  7. Datawarehouse

  8. verilog实现16位五级流水线的CPU带Hazard冲突处理

    verilog实现16位五级流水线的CPU带Hazard冲突处理 该文是基于博主之前一篇博客http://www.cnblogs.com/wsine/p/4292869.html所增加的Hazard处 ...

  9. Qt 按键长按的处理

    keyPressEvent()部分代码: if (e->key() == Qt::Key_A && e->isAutoRepeat()) {   if (!mPressFl ...

  10. 在VS2010中ActiveX控件注册方法,使用regsvr32命令

    上一篇小编展示了如何设置VS2010自带的ActiveX控件的容器测试程序,现在为大家演示一下如何注册ActiveX控件. 首先简单了解一下ActiveX控件的知识,ActiveX控件:简单来说,就是 ...