iOS 9应用开发教程之多行读写文本ios9文本视图

多行读写文本——ios9文本视图

文本视图也是输入控件,与文本框不同的是,文本视图可以让用户输入多行,如图2.23所示。在此图中字符串“说点什么吧”这一区域就是使用文本视图实现的,用户可以在此区域中写大量的文本内容。一般文本框视图使用UITextView实现。


图2.23  写日志

【示例2-9】以下将使用文本视图实现QQ中写说说并发表的功能。具体的操作步骤如下:

(1)创建一个Single View Application模板类型的项目,命名为UITextView。

(2)打开Main.storyboard文件,对主视图进行设计,效果如图2.24所示。

需要添加的视图以及对它们的设置如表2-6所示。

表2-6  对视图对象的设置

图2.24  主视图的效果

(3)打开ViewController.swift文件,编写代码,此代码实现的功能是写说说并发表的功能。代码如下:

  • import UIKit

  • class ViewController: UIViewController,UITextViewDelegate {

  • let wtv=UITextView(frame: CGRectMake(0, 97, 375, 232))

  • let rtv=UITextView(frame: CGRectMake(0, 372, 375, 232))

  • let label=UILabel(frame: CGRectMake(3, 105, 123, 21))

  • override func viewDidLoad() {

  • super.viewDidLoad()

  • // Do any additional setup after loading the view, typically from a nib.

  • self.view.addSubview(wtv)                             //添加文本视图

  • label.text="说点什么吧..."                                 //设置标签的文本内容

  • label.enabled=false                                         //禁用标签

  • label.backgroundColor=UIColor.clearColor()

  • wtv.delegate=self                                             //设置文本视图的委托

  • self.view.addSubview(label)

  • self.view.addSubview(rtv)

  • rtv.backgroundColor=UIColor.clearColor()

  • rtv.editable=false                                                       //禁用文本视图

  • rtv.hidden=true                                                  //隐藏文本视图

  • }

  • //监听文字改变的消息

  • func textViewDidChange(textView: UITextView) {

  • //判断文本视图的内容是否为空

  • if(wtv.text==""){

  • label.text="说点什么吧..."

  • }else{

  • label.hidden=true

  • }

  • }

  • //隐藏键盘

  • @IBAction func cancel(sender: AnyObject) {

  • wtv.resignFirstResponder()

  • }

  • //发表说说,隐藏键盘

  • @IBAction func issue(sender: AnyObject) {

  • rtv.hidden=false

  • rtv.text=wtv.text                                                           //设置文本视图的文本内容

  • wtv.resignFirstResponder()

  • }

  • ……

  • }

运行程序后,会看到如图2.25所示的效果。当开发者轻拍文本视图后,会自动弹出键盘,如图2.26所示。


图2.25  运行效果                                图2.26  运行效果

当开发者在文本视图中输入内容后,字符串“说点什么吧…”就会自动消失,如图2.27所示。当轻拍发表按钮后,在文本视图中写入的内容就会显示在另一个文本视图中,并且键盘消失,如图2.28所示。


图2.27  运行效果                                 图2.28  运行效果

本文选自:iOS 9应用开发基础教程大学霸内部资料,转载请注明出处,尊重技术尊重IT人!

iOS 9应用开发教程之多行读写文本ios9文本视图相关推荐

  1. iOS 9应用开发教程之显示编辑文本标签文本框

    iOS 9应用开发教程之显示编辑文本标签文本框 ios9显示.编辑文本 在iOS,经常会看到一些文本的显示.文字就是这些不会说话的设备的嘴巴.通过这些文字,可以很清楚的指定这些设备要表达的信息.本节将 ...

  2. iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2)

    iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2) 此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发. 注意:以上这一种方式是动作声明和关联一起进行的,还有一种先 ...

  3. iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图

    iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的 ...

  4. iOS 9应用开发教程之使用代码添加按钮美化按钮

    iOS 9应用开发教程之使用代码添加按钮美化按钮 丰富的用户界面 在iOS9中提供了很多的控件以及视图来丰富用户界面,对于这些视图以及控件我们在上一章中做了简单的介绍.本章我们将详细讲解这些视图. i ...

  5. iOS 9应用开发教程之定制应用程序图标以及真机测试

    iOS 9应用开发教程之定制应用程序图标以及真机测试 定制ios9应用程序图标 在图1.12中可以看到应用程序的图标是网状白色图像,它是iOS模拟器上的应用程序默认的图标.这个图标是可以进行改变的.以 ...

  6. iOS 9应用开发教程之编辑界面与编写代码

    iOS 9应用开发教程之编辑界面与编写代码 编辑界面 在1.2.2小节中提到过编辑界面(Interface builder),编辑界面是用来设计用户界面的,单击打开Main.storyboard文件就 ...

  7. iOS 9应用开发教程之创建iOS 9项目与模拟器介绍

    iOS 9应用开发教程之创建iOS 9项目与模拟器介绍 编写第一个iOS 9应用 本节将以一个iOS 9应用程序为例,为开发者讲解如何使用Xcode 7.0去创建项目,以及iOS模拟器的一些功能.编辑 ...

  8. iOS Swift GCD 开发教程

    本教程将带你详细了解 GCD 的概念和用法,通过文中的代码示例和附带的 Github 示例工程,可以进一步加深对这些概念的体会.附带的示例工程是一个完整可运行的 App 项目:DispatchQueu ...

  9. iOS新闻客户端开发教程7-新闻列表

    在上教程中,我们介绍了二级导航栏的开发,今天我们来讲解iOS开发中非常常用和重要的组件:"列表",即UITableView.本节课程将会介绍横向滚动列表和竖向滚动列表,分别来实现二 ...

最新文章

  1. 洛谷P1896 [SCOI2005]互不侵犯 状压dp+位运算
  2. spark编程基础--2.4函数式编程基础
  3. Linux系统内存管理之伙伴系统分析 - 旭东的博客 - 博客园
  4. js实时获取系统当前时间
  5. 隐马尔可夫模型(HMM)及Viterbi算法
  6. java类成员方法(成员函数)的初步介绍
  7. 【ATT】【second】Decode Ways
  8. shell制表与脚本运行进度条写法
  9. 网易java笔试题_网易笔试题详细解答(Java)
  10. 留个坑,不知道为什么sqlite3要求组权限才能执行db:migrate,而可以直接执行db:......
  11. ERP:“造势”,还是“做事”
  12. 诺基亚成功转型:引领新一代5G技术 布局物联网
  13. 汉字区位码查询与算法
  14. Google搜索 - 世界各国Google网址大全
  15. Springboot bean作用域
  16. 2021-07-03 dd命令拷贝数据错误的问题定位及解决方法
  17. 微信支付:请求参数与订单信息不一致
  18. [C语言错误]expected declaration or statement at end of input)
  19. ubuntu18.04添加网络共享文件夹
  20. 55 个 Linux 练手项目合集,打通你的 Linux 任督二脉 !

热门文章

  1. 搭建Windows Azure开发环境-Azure虚拟机
  2. .NET程序员的C情结(二)
  3. 关于SQL漏洞注入(Ado.Net)
  4. 《软件观念革命——交互设计精髓》读书笔记(一)
  5. .NET MVC Filter异常处理
  6. Android解决程序切换后台被干掉,恢复状态问题
  7. kali linux有线连接不见网络图标不见(解决方案)
  8. fiddler https 您的连接不是私密连接 解决方法(不明原理但是照着做成功了,记录下)
  9. JS改变input的value值不触发onchange事件解决方案 (转)
  10. int a [] = {1,2,}; 允许使用怪异的逗号。 有什么特殊原因吗?