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")
    }
时间: 2024-10-10 06:59:47

UITextView -- 基础备忘的相关文章

ajax基础------备忘

1:register.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dt

【基础备忘】 二叉树前序、中序、后序遍历相互求法

转自:http://www.cnblogs.com/fzhe/archive/2013/01/07/2849040.html 今天来总结下二叉树前序.中序.后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明. 首先,我们看看前序.中序.后序遍历的特性: 前序遍历:     1.访问根节点     2.前序遍历左子树     3.前序遍历右子树 中序遍历:     1.中序遍历左子树     2

基础备忘

1.虚函数不能被内联.   因为“内联”意味着“在编译时刻用被调用函数的函数体来代替被调用的函数”.但是“虚函数”意味着“运行时刻决定被调用的是哪一个函数”. 2.多重继承一般要求基类为虚基类.   不是虚基类的话,如果一个派生类有多于一条通向基类的继承路径,基类的数据成员会被复制到每一个继承类的对象里,继承类与基类间的每条路径都有一个拷贝.把基类定义为虚基类则可以消除这种重复.   class A {};   class B : virtual public A {};   class C :

scala基础备忘

声明一个变量 声明一个常量 显式指定类型 定义一个main函数 package org.admln.scala class HelloScala { } object HelloScala { def main (args: Array[String]) { println("hello scala") } } 定义一个普通函数 package org.admln.scala class HelloScala { } object HelloScala { def main (args

【基础备忘】基数排序

转自:http://www.cnblogs.com/kaituorensheng/archive/2013/02/23/2923877.html 基本思想 假设数序列中小于元素a的个数为n,则直接把a放到第n+1个位置上.当存在几个相同的元素时要做适当的调整,因为不能把所有的元素放到同一个位置上.计数排序假设输入的元素都是0到k之间的整数. 回到顶部 参考代码 #include <stdio.h> void COUNTINGSORT(int *A, int *B, int array_size

【基础备忘】JSON与XML的区别比较

转自:http://www.cnblogs.com/SanMaoSpace/p/3139186.html 1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准.XML是标准通

【基础备忘】求sizeof struct

转自牛客网 一: 1.什么是内存对齐 假设我们同时声明两个变量: char a; short b; 用&(取地址符号)观察变量a, b的地址的话,我们会发现(以16位CPU为例): 如果a的地址是0x0000,那么b的地址将会是0x0002或者是0x0004. 那么就出现这样一个问题:0x0001这个地址没有被使用,那它干什么去了? 答案就是它确实没被使用. 因为CPU每次都是从以2字节(16位CPU)或是4字节(32位CPU)的整数倍的内存地址中读进数据的.如果变量b的地址是0x0001的话,

R语言基础备忘 plot()详解

plot是R中的基本画图工具,直接plot(x),x为一个数据集,就能画出图,soeasy!但是细节往往制胜的关键.所以就详细来看下plot的所有可设置参数及参数设置方法. 下面讲到的图形参数,是graphic包中的常见参数,graphic不同图形方法中,这些参数都是相同的. type图形的类型 "p"点图 "l"线图 "b"点线图,线不穿过点 "c"虚线图 "o"点线图,线穿过点 "h"

linux网络基础(备忘)

1.如何让自己活得久一点,程序员 http://www.yeeyan.com/articles/view/31069/10175 在以太网的世界里,除了要网卡,还要有网线升级以及线路之间的交换器都要升级到相应的传输速率水平.ji 1.信号衰减的问题: 电子信号是存在衰减的,当长度达到100米时,就会很有可能出现问题.还有1.网线折的太严重,比如被门挤到,自行压制水晶头,缠绕度不够,风吹日晒的线路老化都会让信号衰减以及链接质量的问题:比如我之前遇到的一会链接上,一会连接不上,就是水晶头的制作有问题