UITextView -- 基础备忘
UITextView
这篇文章只涉及到基本的使用,日后会写一些关于结合TextKit的备忘
基本属性
let screenSize = UIScreen.mainScreen().bounds.size
let textView = UITextView(frame: CGRectMake(0, 20, screenSize.width, 200))
textView.font = UIFont.systemFontOfSize(20)
textView.selectable = false
textView.scrollEnabled = true
textView.editable = true
textView.textColor = UIColor.whiteColor()
textView.backgroundColor = UIColor.blackColor()
textView.text = "The UITextView class implements the behavior for a scrollable, multiline text region. The class supports the display of text using custom style information and also supports text editing. You typically use a text view to display multiple lines of text, such as when displaying the body of a large text document."
textView.textAlignment = .Center
textView.textContainerInset = UIEdgeInsetsMake(60, 0, 0, 0)
textView.keyboardType = .Default
textView.returnKeyType = .Default
view.addSubview(textView) self.textView = textView
- font:字体
- selectable:是否可以选中。
- scrollEnabled:是否可以滚动。
- editable:是否可以编辑。
- textColor:文字颜色。
- backgroundColor:背景色。
- text:要显示的文字。
- textAlignment:文字排版样式。
- textContainerInset:文字的距离textview的内边距。
- keyboardType:键盘样式。
- returnKeyType:return键的样式。
监听通知
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.textViewDidBeginEdit(_:)), name: UITextViewTextDidBeginEditingNotification, object: textView)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.textViewTextDidChange(_:)), name: UITextViewTextDidChangeNotification, object: textView)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.textViewDidEndEdit(_:)), name: UITextViewTextDidEndEditingNotification, object: textView) func textViewDidBeginEdit(notification: NSNotification) {
print(notification.name)
} func textViewTextDidChange(notification: NSNotification) {
print(notification.object)
} func textViewDidEndEdit(notification: NSNotification) {
print(notification.name)
} deinit{
NSNotificationCenter.defaultCenter().removeObserver(self, name: UITextViewTextDidChangeNotification, object: textView)
NSNotificationCenter.defaultCenter().removeObserver(self, name: UITextViewTextDidEndEditingNotification, object: textView)
NSNotificationCenter.defaultCenter().removeObserver(self, name: UITextViewTextDidBeginEditingNotification, object: textView)
}
代理方法
extension ViewController: UITextViewDelegate {
// 是否应该开始编辑
func textViewShouldBeginEditing(textView: UITextView) -> Bool {
print("textViewShouldBeginEditing")
return true
}
// 是否应该停止编辑
func textViewShouldEndEditing(textView: UITextView) -> Bool {
print("textViewShouldEndEditing")
return true
}
// 文字视图已经开始编辑
func textViewDidBeginEditing(textView: UITextView) {
print("textViewDidBeginEditing")
}
// 文字视图已经停止编辑
func textViewDidEndEditing(textView: UITextView) {
print("textViewDidEndEditing")
}
// 文字视图是否允许替换文字,每当有文字要被输入或删除都会先调用这个方法
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if text == "\n" {
textView.resignFirstResponder()
return false
}
return true
}
// 文字视图文字已经被替换
func textViewDidChange(textView: UITextView) {
print("textViewDidChange")
}
// 每当有一组文字被选中或删除输入、放大镜的移动,都会调用此方法
func textViewDidChangeSelection(textView: UITextView) {
print("textViewDidChangeSelection")
}
UITextView -- 基础备忘的更多相关文章
- scala基础备忘
声明一个变量 声明一个常量 显式指定类型 定义一个main函数 package org.admln.scala class HelloScala { } object HelloScala { def ...
- Java Socket基础[备忘]
1.服务端----Server.java import javax.swing.*; import java.io.*; import java.net.*; import java.awt.*; i ...
- ajax基础------备忘
1:register.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- javaweb基础备忘
Request对象的主要方法有哪些 setAttribute(String name,Object):设置名字为name的request 的参数值 getAttribute(String name): ...
- Linux基础之常用基本命令备忘
Linux基础之常用基本命令备忘 PWD 查询当前所在Linux上的位置 / 根目录 CD(change directory)切换目录 语法 CD /(注意添加空格) LS ...
- Nmap备忘单:从探索到漏洞利用(Part 4)
这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...
- HTML5终极备忘大全
二.文字备忘之标签 HTML5中新增的标签 <article> 定义文章 <aside> 定义页面内容旁边的内容 <audio> 定义声音内容 <canvas ...
- [转] HTML5终极备忘大全(图片版+文字版)---张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1544 一.前言兼图片 ...
- Table view 备忘
Table view 备忘 本篇会以备忘为主,主要是一些基础的代理方法和数据源方法具体的优化好点子会后续跟上. Table view的数据源方法 必须实现的数据源方法 // 返回每一行的cell,可以 ...
随机推荐
- ubuntu12.04已安装SQLite3
而简单易用
今天想写一点app,使用数据库,所以在这里简要地记住它是安装和使用. 1.安装SQLite3 命令行下输入:sudo apt-get install sqlite3 2.安装SQLite3编译须要的工 ...
- ORACLE ------MYSQL2014 大会 PPT
https://oracleus.activeevents.com/2014/connect/focusOnDoc.do?focusID=17888
- VMWARE FUSION 6 KEY
Serial number: VZ15K-DKD85-M85EP-W4P79-XAAU4 Serial number: VU50A-2UW9Q-M88UY-D7MQX-ZG8X8 Serial num ...
- .Net设计模式_工厂模式(3)
3.抽象工厂模式 引言: 我们知道汽车需要很多部件才能组装成一辆成品的车,那么我们需要汽车厂生产很多东西,如:马达.车轴.轮胎等,这些东西组装起来后成为了一辆车. 这些东西就是产品族,图解:(出之ht ...
- Eclipse内存溢出问题
我们经常遇到eclipse内存溢出问题,实际上只需要修改eclipse程序目录下的eclipse.ini文件, -Xms40m -Xmx1000m -XX:MaxPermSize=256m
- 3dmax使用K帧工具创建一个行走动作
第一步,创建一个biped骨骼. 这个就不截图了,因为基本都会. 记住一点,先改变了关键点再去修改,不然修改的是前一个关键帧的动作. 第二步,开启自动关键帧,然后给初始位置双脚添加踩踏关键点.设置关键 ...
- android线程池ThreadPoolExecutor的理解
android线程池ThreadPoolExecutor的理解 线程池 我自己理解看来.线程池顾名思义就是一个容器的意思,容纳的就是ThreadorRunable, 注意:每一个线程都是需要CPU分配 ...
- 学习笔记_过滤器应用(粗粒度权限控制(拦截是否登录、拦截用户名admin权限))
RBAC ->基于角色的权限控制 l tb_user l tb_role l tb_userrole l tb_menu(增.删.改.查) l tb_rolemenu 1 说明 我们给 ...
- asp.net中Get请求和Post请求
Get和Post请求的区别:Get请求因为传输的数据在URL中,因此不安全,而且多数浏览器有限制其长度,最长为2KB.通过Get请求获取数据的方式:string strName=context.Req ...
- Angularjs总结(八)$ cookie和$rootscope
AngularJS 提供了很好的 $cookie 和 $cookieStore API 用来处理 cookies .这两个服务都能够很好的发挥HTML5 cookies,当HTML5 API可用时浏览 ...