iOS - UITextView
前言
NS_CLASS_AVAILABLE_IOS(2_0) @interface UITextView : UIScrollView <UITextInput>
@available(iOS 2.0, *) public class UITextView : UIScrollView, UITextInput
- UITextView 具有 label 大部分属性,以及 textField 的属性。
1、UITextView 的创建
Objective-C
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 30, self.view.frame.size.width - 20, 400)]; // 将 textView 添加到 view
[self.view addSubview:textView];
Swift
let textView:UITextView = UITextView(frame: CGRectMake(10, 30, self.view.frame.size.width - 20, 400)) // 将 textView 添加到 view
self.view.addSubview(textView)
2、UITextView 的设置
Objective-C
// 设置背景颜色
textView.backgroundColor = [UIColor lightGrayColor]; // 设置文本
/*
由于 UITextView 具有滚动功能,当 text 文本内容较多时可以实现滚动阅读和编辑
*/
textView.text = @"写代码快乐\n15911110524\n写代码快乐\nhttps://www.baidu.com\n写代码快乐"; // 设置对齐方式
/*
NSTextAlignmentLeft = 0, // Visually left aligned
NSTextAlignmentCenter = 1, // Visually centered
NSTextAlignmentRight = 2, // Visually right aligned
NSTextAlignmentJustified = 3, // Fully-justified. The last line in a paragraph is natural-aligned.
NSTextAlignmentNatural = 4, // Indicates the default alignment for script
*/
textView.textAlignment = NSTextAlignmentLeft; // 设置文本颜色
textView.textColor = [UIColor redColor]; // 设置字体
textView.font = [UIFont boldSystemFontOfSize:20]; // 对文本中的电话和网址自动加链接
/*
UIDataDetectorTypePhoneNumber = 1 << 0, // Phone number detection
UIDataDetectorTypeLink = 1 << 1, // URL detection
UIDataDetectorTypeAddress NS_ENUM_AVAILABLE_IOS(4_0) = 1 << 2, // Street address detection
UIDataDetectorTypeCalendarEvent NS_ENUM_AVAILABLE_IOS(4_0) = 1 << 3, // Event detection
UIDataDetectorTypeNone = 0, // No detection at all
UIDataDetectorTypeAll = NSUIntegerMax // All types
*/
textView.dataDetectorTypes = UIDataDetectorTypeAll; // 禁止编辑
/*
设置为只读,不再能输入内容
*/
textView.editable = NO; // 禁止选择
/*
禁止选中文本,此时文本也禁止编辑
*/
textView.selectable = NO; // 禁止滚动
textView.scrollEnabled = NO; // 获取当前选择的范围
NSRange range = textView.selectedRange; // 设置可以对选中的文字加粗
/*
选中文字时可以对选中的文字加粗
*/
textView.allowsEditingTextAttributes = YES; // 设置 textView 的代理,需遵守协议 <UITextViewDelegate>
textView.delegate = self;
Swift
// 设置背景颜色
textView.backgroundColor = UIColor.lightGrayColor() // 设置文本
/*
由于 UITextView 具有滚动功能,当 text 文本内容较多时可以实现滚动阅读和编辑
*/
textView.text = "写代码快乐\n15911110524\n写代码快乐\nhttps://www.baidu.com\n写代码快乐" // 设置文本颜色
textView.textColor = UIColor.redColor() // 设置对齐方式
/*
case Left // Visually left aligned
case Center // Visually centered
case Right // Visually right aligned
case Justified // Fully-justified. The last line in a paragraph is natural-aligned.
case Natural // Indicates the default alignment for script
*/
textView.textAlignment = .Left // 设置字体
textView.font = UIFont.systemFontOfSize(20) // 对文本中的电话和网址自动加链接
/*
PhoneNumber // Phone number detection
Link // URL detection
Address // Street address detection
CalendarEvent // Event detection
None // No detection at all
All // All types
*/
textView.dataDetectorTypes = .All // 禁止编辑
/*
设置为只读,不再能输入内容
*/
textView.editable = false // 禁止选择
/*
禁止选中文本,此时文本也禁止编辑
*/
textView.selectable = false // 禁止滚动
textView.scrollEnabled = false // 获取当前选择的范围
let range:NSRange = textView.selectedRange // 设置可以对选中的文字加粗
/*
选中文字时可以对选中的文字加粗
*/
textView.allowsEditingTextAttributes = true // 设置 textView 的代理,需遵守协议 UITextViewDelegate
textView.delegate = self
3、UITextViewDelegate 的协议方法
需遵守协议 UITextViewDelegate,并设置代理
Objective-C
// 将要开始编辑,编辑开始前被调用
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView { return YES;
} // 已经开始编辑,编辑开始后被调用
- (void)textViewDidBeginEditing:(UITextView *)textView { } // 将要结束编辑,编辑结束前被调用
- (BOOL)textViewShouldEndEditing:(UITextView *)textView { return YES;
} // 已经结束编辑,编辑结束后被调用
- (void)textViewDidEndEditing:(UITextView *)textView { NSLog(@"编辑的内容是 : %@", textView.text);
} // 文本修改,文本修改前被调用
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { return YES;
} // 文本变更,文本变更时被调用,每输入一个字符时都会被调用
- (void)textViewDidChange:(UITextView *)textView { } // 游标移动,选择范围发生变化时被调用
- (void)textViewDidChangeSelection:(UITextView *)textView { }
Swift
// 将要开始编辑,编辑开始前被调用
func textViewShouldBeginEditing(textView: UITextView) -> Bool { return true
} // 已经开始编辑,编辑开始后被调用
func textViewDidBeginEditing(textView: UITextView) { } // 将要结束编辑,编辑结束前被调用
func textViewShouldEndEditing(textView: UITextView) -> Bool { return true
} // 已经结束编辑,编辑结束后被调用
func textViewDidEndEditing(textView: UITextView) { print("编辑的内容是 : \(textView.text)")
} // 文本修改,文本修改前被调用
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { return true
} // 文本变更,文本变更时被调用,每输入一个字符时都会被调用
func textViewDidChange(textView: UITextView) { } // 游标移动,选择范围发生变化时被调用
func textViewDidChangeSelection(textView: UITextView) { }
iOS - UITextView的更多相关文章
- iOS UITextView 输入内容实时更新cell的高度
iOS UITextView 输入内容实时更新cell的高度 2014-12-26 11:37 编辑: suiling 分类:iOS开发 来源:Vito Zhang'blog 11 4741 UIT ...
- IOS UITextView自适应高度
LOFTER app需要实现了一个类似iPhone短信输入框的功能,它的功能其实蛮简单,就是:[UITextView的高度随着内容高度的变化而变化].实现思路应该是: 在UITextView的text ...
- IOS UITextView支持输入、复制、粘贴、剪切自定义表情
UITextView是ios的富文本编辑控件,除了文字还可以插入图片等.今天主要介绍一下UITextView对自定义表情的处理. 1.首先识别出文本中的表情文本,然后在对应的位置插入NSTextAtt ...
- iOS - UITextView实现placeHolder占位文字
iOS之UITextView实现placeHolder占位文字的N种方法 前言 iOS开发中,UITextField和UITextView是最常用的文本接受类和文本展示类的控件.UITextFie ...
- iOS UITextView 根据输入text自适应高度
转载自:http://www.cnblogs.com/tmf-4838/p/5380495.html #import "ViewController.h" @interface V ...
- iOS UITextView 设置 NSLinkAttributeName 属性,点击链接跳转
@interface ViewController ()<UITextViewDelegate> - (void)viewDidLoad{ [super viewDidLoad]; ...
- iOS - UITextView放在自定义cell里面-自适应高度
textView放在自定义cell里面-自适应高度 1,textView有个属性 scrollEnabled 要设置为NO; 2,设置tableview的时候 添加这两行代码: self.tabl ...
- iOS - UITextView在调用textViewDidChange方法,九宫格相关中文输入的问题
问题一 iOS textView在调用 UITextViewDelegate 的 textViewDidChange方法,九宫格相关中文输入的问题 有时候,需要在textViewDidChange处理 ...
- 一步一步学ios UITextView(多行文本框)控件的用法详解(五5.8)
本文转载至 http://wuchaorang.2008.blog.163.com/blog/static/48891852201232014813990/ 1.创建并初始化 创建UIText ...
随机推荐
- PL/SQL显示行号和高亮当前行
PL/SQL Developer 如何显示行号: PL/SQL Developer 高亮当前行: OK!
- [thml]HTML select标签 获取选中的option的value及Text内容
很简单的select标签: <select id="hello" onchange="getContent(this.value,this.options[this ...
- 快速排序算法(Java)
快速排序算法的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另外一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序. class Parti ...
- 【转】SVN 查看历史信息
转载地址:http://lee2013.iteye.com/blog/1074457 SVN 查看历史信息 通过svn命令可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改.以下四个命令 ...
- android异步加载图片并缓存到本地实现方法
图片过多造成内存溢出,这个是最不容易解决的,要想一些好的缓存策略,比如大图片使用LRU缓存策略或懒加载缓存策略.今天首先介绍一下本地缓存图片 在android项目中访问网络图片是非常普遍性的事 ...
- class打包成exe方式
首先运行dos命令 jar -cvf **.jar *.class 把所有文件打包成jar包 用解压器打开jar包 打开meta-inf文件夹 打开用记事本打开main.mf文件 增加语句Main-C ...
- HDU 4712:Hamming Distance
Hamming Distance Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- Mix and Build(简单DP)
Mix and Build Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 3936 Accepted: 1203 Case Ti ...
- Ombrophobic Bovines 分类: POJ 图论 最短路 查找 2015-08-10 20:32 2人阅读 评论(0) 收藏
Ombrophobic Bovines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16539 Accepted: 3605 ...
- 【TCP】超时与重传
在TCP连接中假设发送方一开始便向网络发送多个报文段,直到达到接收方通告的窗口大小为止.当发送方和接收方处于同一个区域网段时,这种方式是可以的.但是如果发送方和接收方之间存在多个路由器和速率较慢的链路 ...