在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. ORA-01078、ORA-01565、ORA-17503、ORA-29701

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - ...

  2. Excel日期格式提取year

    Excel日期格式提取year =TEXT(YEAR(C2),"0000")

  3. Collaborative filtering

        Collaborative filtering, 即协同过滤,是一种新颖的技术.最早于1989年就提出来了,直到21世纪才得到产业性的应用.应用上的代表在国外有Amazon.com,Last. ...

  4. Android之完美退出方法

    为什么要写这篇文章? 网上有很多种退出方法,可实际上很多方法都不通用(在某个版本下可用,到了另一个版本就不行),或者方法的实际效果根本就和其描述不符(也不知道那些发帖的人测没测试过). 但我们的需求又 ...

  5. hdu 4308 Saving Princess claire_

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4308 Saving Princess claire_ Description Princess cla ...

  6. hdu 1622 Trees on the level

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1622 小白书上的题... #include<algorithm> #include< ...

  7. android开发系列之由ContentValues看到的

    这本篇博客里面我想重点来分析一下ContentValues的源码以及它里面涉及到的继承接口Parcelabel,还有HashMap的源码. 相信使用过android里面数据库操作的朋友对于Conten ...

  8. linux之iptables总结

    netfilter/iptables概述:     netfilter/iptables是Linux内核防火墙架构,由netfilter实现功能,由iptables提供接口.     iptables ...

  9. 鲁棒性是 Robustness

    鲁棒性是 Robustness 的音译,是指当系统受到不正常干扰时,是否还能保证主体功能正常运作.可参考 维基百科:http://zh.wikipedia.org/zh/ 鲁棒性 _( 计算机科学 ) ...

  10. SQL-LINQ-Lambda语法对照,好记性不如烂笔头

    忘记的时候就翻阅翻阅吧~~ SQL LINQ Lambda SELECT *FROM HumanResources.Employee from e in Employees select e Empl ...