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. Sagit.Framework For IOS 开发框架入门开发教程2:一行代码实现引导页

    前言: 开篇比较简单:Sagit.Framework For IOS 开发框架入门开发教程1:框架下载与环境配置 第二篇教程之前写了一半,感觉不太好写,而且内容单纯介绍API,要说的很多,又枯燥乏味. ...

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

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

  3. iOS系统提供开发环境下命令行编译工具:xcodebuild

    iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 一个菜鸟的ASP.NET观光路线图

           作为一个成长的"菜鸟".我的习惯是,每过一个阶段,都对自己的知识体系进行一次概括. 这篇博文是一个总结帖,我将把我的学到的东西,按照一定顺序串联在一起.        ...

  2. Linux 下子进程与父进程的关系

    我们知道,Linux下父进程可以使用fork 函数创建子进程,但是当父进程先退出后,子进程会不会也退出呢? 通过下面这个小实验,我们能够很好的看出来: /******** basic.c ****** ...

  3. Python练习-基于授权方式包装list之与根儿哥必有一战

    # 编辑者:闫龙 # 基于授权定制自己的列表类型,要求定制的自己的__init__方法, # 定制自己的append:只能向列表加入字符串类型的值 # 定制显示列表中间那个值的属性(提示:proper ...

  4. WIN下的CMD下载命令

    certutil -urlcache -split -f 远程地址 本地保存的文件跑径与文 件名 # 如里不写本地文 件名与路径名, 会自动跟远程文 件名相同, 并保存到当前目 录下 另一个是: bi ...

  5. 源码安装postgresql数据库

    一般情况下,postgresql由非root用户启动. 1.创建postgres用户 groupadd postgres useradd -g postgres postgres 下面的操作都在pos ...

  6. Linux修改主机名【转】

    一.永久修改修改/etc/sysconfig/network,在里面指定主机名称HOSTNAME=然后执行命令hostname 主机名这个时候可以注销一下系统,再重登录之后就行了. 或者修改/etc/ ...

  7. redis数据淘汰机制

    volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用 的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db[i ...

  8. grpc 实现微服务生态笔记

    微服务的发展可谓是一波三折,一代一代经历和N多技术成果,grpc只是其中一个,因为其东家是google,明显比较稳定.加上其强大的文档和技术支持和跨平台的支持,在企业级应用上有很大的可信任感,所以也有 ...

  9. 爬虫基础---HTTP协议理解、网页的基础知识、爬虫的基本原理

    一.HTTP协议的理解 URL和URI 在学习HTTP之前我们需要了解一下URL.URI(精确的说明某资源的位置以及如果去访问它) URL:Universal Resource Locator 统一资 ...

  10. Vue起步

    Vue起步 Vue.js是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式javascript框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用. ...