1.创建并初始化
创建UITextView的文件,并在.h文件中写入如下代码:
#import <UIKit/UIKit.h>
@interface TextViewController : UIViewController <UITextViewDelegate>
{
UITextView *textView;
}
@property (nonatomic, retain) UITextView *textView;
@end
在.m文件中初始化这个textview,写入代码如下:
view sourceprint?
self.textView = [[[UITextView alloc] initWithFrame:self.view.frame] autorelease]; //初始化大小并自动释放
|
self.textView.textColor = [UIColor blackColor]; //设置textview里面的字体颜色
|
self.textView.font = [UIFont fontWithName: @"Arial" size:18.0]; //设置字体名字和字体大小
|
self.textView. delegate = self; //设置它的委托方法
|
self.textView.backgroundColor = [UIColor whiteColor]; //设置它的背景颜色
|
self.textView.text = @"Now is the time for all good developers to come to serve their country.\n\nNow is the time for all good developers to come to serve their country." ; //设置它显示的内容
|
self.textView.returnKeyType = UIReturnKeyDefault; //返回键的类型
|
self.textView.keyboardType = UIKeyboardTypeDefault; //键盘类型
|
self.textView.scrollEnabled = YES; //是否可以拖动
|
self.textView.autoresizingMask = UIViewAutoresizingFlexibleHeight; //自适应高度
|
[self.view addSubview: self.textView]; //加入到整个页面中
|
2. UITextView退出键盘的几种方式
因为你点击UITextView会出现键盘,如果你退出键盘,有如下几种方式:
(1)如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate。
代码如下:
view sourceprint?
- ( void )textViewDidBeginEditing:(UITextView *)textView {
|
UIBarButtonItem *done = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leaveEditMode)] autorelease];
|
self.navigationItem.rightBarButtonItem = done;
|
- ( void )textViewDidEndEditing:(UITextView *)textView {
|
self.navigationItem.rightBarButtonItem = nil;
|
[self.textView resignFirstResponder];
|
(2)如果你的textview里不用回车键,可以把回车键当做退出键盘的响应键。
代码如下:
view sourceprint?
#pragma mark - UITextView Delegate Methods
|
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
|
if ([text isEqualToString: @"\n" ]) {
|
|
[textView resignFirstResponder];
|
|
这样无论你是使用电脑键盘上的回车键还是使用弹出键盘里的return键都可以达到退出键盘的效果。
(3)还有你也可以自定义其他加载键盘上面用来退出,比如在弹出的键盘上面加一个view来放置退出键盘的Done按钮。
代码如下:
view sourceprint?
UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];
|
[topView setBarStyle:UIBarStyleBlack];
|
|
UIBarButtonItem * helloButton = [[UIBarButtonItem alloc]initWithTitle: @"Hello" style:UIBarButtonItemStyleBordered target:self action:nil];
|
|
UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
|
|
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]initWithTitle: @"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)];
|
|
NSArray * buttonsArray = [NSArray arrayWithObjects:helloButton,btnSpace,doneButton,nil];
|
|
[topView setItems:buttonsArray];
|
|
[tvTextView setInputAccessoryView:topView];
|
|
-(IBAction)dismissKeyBoard
|
|
[tvTextView resignFirstResponder];
|
|
(4)设置UITextView圆角问题
做法是在 #import QuartzCore/QuartzCore.h 后,便能調用 [textView.layer setCornerRadius:10]; 來把 UITextView 设定圓角
(5)UITextView根据文本大小自适应高度
通过实现文本字数来确定高度,如下:
view sourceprint?
NSString * desc = @"Description it is a test font, and don't become angry for which i use to do here.Now here is a very nice party from american or not!" ;
|
CGSize size = [desc sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(240, 2000) lineBreakMode:UILineBreakModeWordWrap];
|
|
然后需要定义UITextView的numberoflines为0,即不做行数的限制。如下:
view sourceprint?
[textView setNumberOfLines:0];
|
[textView setFrame:CGRectMake(40, 135, 240, size.height+10)];
|
|
(6)UITextView自定选择文字后的菜单
在ViewDidLoad中加入:
view sourceprint?
UIMenuItem *menuItem = [[UIMenuItem alloc]initWithTitle: @"分享到新浪微博" action:@selector(changeColor:)];
|
UIMenuController *menu = [UIMenuController sharedMenuController];
|
[menu setMenuItems:[NSArray arrayWithObject:menuItem]];
|
当然上面那个@selector里面的changeColor方法还是自己写吧,也就是说点击了我们自定义的菜单项后会触发的方法。
然后还得在代码里加上一个方法:
view sourceprint?
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
|
if (action == @selector(changeColor:))
|
if (textView.selectedRange.length>0)
|
实现后如下图:
转载于:https://www.cnblogs.com/daguo/archive/2012/06/19/2554277.html
UITextView详解相关推荐
- 【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)
博客地址 : http://blog.csdn.net/shulianghan/article/details/50051499 ; 一. UI 控件简介 1. UI 控件分类 UI 控件分类 : 活 ...
- iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客
版权声明:本文为博主原创文章,未经博主允许不得转载. 每日更新关注:http://weibo.com/hanjunqiang 新浪微博 简单介绍: [objc] view plaincopy // ...
- ios开发读取剪切板的内容_iOS中管理剪切板的UIPasteboard粘贴板类用法详解
一.自带剪切板操作的原生UI控件在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField.UITextView与UIWebView.在这些控件的文字交互处进行长按手势可以在屏幕视图 ...
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- JVM年轻代,老年代,永久代详解
秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- 通俗易懂word2vec详解词嵌入-深度学习
https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...
- 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法
深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...
- CUDA之nvidia-smi命令详解---gpu
nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...
最新文章
- 上传大文件,出现: 413 request Entity too Large错误的解决办法
- 三大运营商借5G消息围攻微信,就问张小龙怕不怕
- 第五章 云原生与容器技术
- 透明(颜色)渐变背景(颜色透明背景),兼容IE8
- 【前端】这可能是你看过最全的css居中解决方案了~
- SpringBoot 注解 @Configuration @PropertySource @Value
- 微软一站式示例代码库(中文版)2011-05-13版本, 新添加Windows Azure, WinForms等16个Sample...
- python ssh模块_python ssh之paramiko模块使用
- linux 网络对讲,基于ARM与Linux的全数字化可视对讲系统的设计与实现
- cgicc输出指定编码为utf-8
- 更改计算机复制快捷键,电脑上怎么把一句话设置快捷键,电脑快捷键复制一句话-...
- 【Django 2021年最新版教程3】新建一个WebApp项目并运行
- 自动装配的几种方式——Spring IOC/DI(四)
- 2D开源游戏引擎调研报告(一)
- python表情包合集_python——简单生成表情包
- Flutter应用程序版本更新与自动升级配置方法
- 翼次元空间:GoodUP.io与4WiN全球互贸链的基础=智协云店通+BitCOO
- OSChina 周一乱弹 —— 鱼生不值得
- 懂技术的产品就是全栈产品?扯.J.B.淡
- 每日刷题记录 (十七)
热门文章
- python源程序执行_Python源程序(.py)转换为可执行文件(.exe)
- jlpt报名系统显示网络错误和服务器忙,批改网作文提交不了一直显示服务器或网络错误...
- 微型计算机使用字符编码,微型计算机系统中普遍使用的字符编码是( )
- JUC阻塞队列BlockingQueue讲解
- ElasticSearch基于REST风格APi的常用操作
- mysql查询修改数据类型_MySQL增删改查及数据类型
- java 内存指针_C指针和内存
- GP学习(十)-Mosaic raster datasets to a file raster format
- onu光功率多少是正常_ONU、机顶盒、路由器常见网络问题及处理方法
- DevEco Studio的下载