博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios基础控件之UITextView 2015-04-08 16:36 186人阅读 评论(0) 收藏...
阅读量:5148 次
发布时间:2019-06-13

本文共 3302 字,大约阅读时间需要 11 分钟。

多行文本控件UITextView继承UIScrollView:UIView控件,默认是带有滚动条的。UITextView和UITextField都是文本编辑、显示控件,它们功能和行为在很多方面都是相似的。UITextView与UITextField的区别主要在以下三点:   UITextView是一个多行文本框,而UITextField只是单行文本框。   UITextView没有继承UIControl控件,因此不能绑定IBAction事件处理         方法;也不能调用UIControl提供的addTarget:action:forControlEvents:方法来绑定事件处理的方法。   UITextView继承了UIScrollView,因此具有UIScrollView的功能和行为。

textView=[[UITextView alloc]initWithFrame:CGRectMake(100, 100, 300, 300)];//初始化尺寸

self.textView.textColor=[UIColor blackColor];//字体颜色
self.textView.font=[UIFont fontWithName:@”Arial” size:18.0];//字体类型和大小
[textView.layer setCornerRadius:50];//设置圆角
self.textView.delegate=self;//设置它的委托方法
textView.layer.borderWidth=5;//设置边框
self.textView.backgroundColor=[UIColor redColor];//背景颜色
self.textView.text=@”“;//显示内容
self.textView.returnKeyType=UIReturnKeyDefault;//返回键的类型
self.textView.keyboardType=UIKeyboardTypeDefault;//键盘类型
self.textView.scrollEnabled=YES;//是否可以拖动
self.textView.autocapitalizationType=UIViewAutoresizingFlexibleHeight;//自适应高度
[self.view addSubview:self.textView];
关闭键盘可以通过以下几种方法:
倘若有导航栏的话,在导航栏上添加退出按钮:
-(void)textViewDidBeginEditing:(UITextView *)textView
{
UIBarButtonItem *done=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leaveEditMode)];
self.navigationItem.rightBarButtonItem=done;
}
-(void)textViewDidEndEditing:(UITextView *)textView
{
self.navigationItem.rightBarButtonItem=nil;
}
-(void)leaveEditMode
{
[self.textView resignFirstResponder];
}

在键盘上边添加一个退出按钮:

UIToolbar *topView=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];
[topView setBarStyle:UIBarStyleBlack];
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]initWithTitle:@”Done” style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)];

-(IBAction)dismissKeyBoard

{
[textView resignFirstResponder];
}
还可以修改键盘上ruturn按钮的功能:
-(BOOL)textView:(UITextView )textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString )text
{
if ([text isEqualToString:@”\n”]) {
[textView resignFirstResponder];
return NO;
}
return YES;

}

有些时候我们选取UITextView上一部分文字想转发,复制或者拷贝。可以在选取栏中增加按钮:

UIMenuItem *menuItem=[[UIMenuItem alloc]initWithTitle:@”转发” action:@selector(changeColor)];
UIMenuController *menu=[UIMenuController sharedMenuController];
[menu setMenuItems:[NSArray arrayWithObject:menuItem]];
-(void)changeColor
{
//实现转发,复制或者拷贝具体功能的代码
}
在日常软件中我们很多地方都需要为UITextView根据需求扩展它的长度。
下面有三种实现的方法:
-(void)textViewDidChange:(UITextView *)textView
{
if(textView.text.length > 20)//一行最多多少字节
{
一、
// UIFont *font = [UIFont systemFontOfSize:15];
// CGSize size = [textView.text sizeWithFont:font constrainedToSize:CGSizeMake(300, 1000) lineBreakMode:UILineBreakModeCharacterWrap];
// //BgImage.frame = CGRectMake(0, 202-size.height+15, 320, size.height+28);
// [textView setFrame:CGRectMake(0, 1, 320, size.height+10)];

**二、**

// CGRect frame = textView.frame;

// CGSize size = [textView.text sizeWithFont:textView.font
// constrainedToSize:CGSizeMake(280, 1000)
// lineBreakMode:UILineBreakModeTailTruncation];
// frame.size.height = size.height > 1 ? size.height + 20 : 64;
// textView.frame = frame;

三、

CGRect frame = textView.frame;
frame.size.height = textView.contentSize.height;
textView.frame = frame;

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/xinxinit/p/4677752.html

你可能感兴趣的文章
php 服务的例子,php-fpm添加service服务的例子php实例
查看>>
php语言插件,多语言多模板切换插件的实现思路
查看>>
网站浏览量统PHP网页计数器,PHP实现网站访问量计数器
查看>>
函数矩阵 matlab,Matlab中特殊的矩阵函数
查看>>
php一键上传N多商品,平台技术-API批量调用简介
查看>>
查询oracle程序登录时长,如何检查oracle数据库长时间运行的查询?
查看>>
oracle数据库 home,Oracle数据库之oracle ADR
查看>>
oracle数据库 闫丽娜 下载,高维数据回归分析中基于LASSO的自变量选择.pdf
查看>>
hana数据库导入到oracle,SAP HANA SLT 将Oracle表 数据同步到HANA数据库
查看>>
linux执行java文件,Linux下执行java程序的方法
查看>>
linux管道命令详解,Linux Shell管道详解
查看>>
sosreport linux收集日志的方法,linux下收集系统全面信息(基于sosreport以及supportconfig)...
查看>>
git使用linux命令行工具下载,推荐一款命令行下支持语法高亮和Git集成的文件查看工具bat...
查看>>
linux添加变色龙引导,u盘启动盘制作win7变色龙引导工具
查看>>
linux把pycharm放桌面,通过xmanger显示centos的pycharm桌面环境
查看>>
linux安装内核rpm包,CentOS上, 我如何制作自定义的内核rpm包?
查看>>
python做一个linux网卡,利用Python 程序实现Linux 网卡 bonding 实现
查看>>
c语言linux读取配置文件,C语言读取配置文件
查看>>
黑莓手机刷linux,黑莓老机型ROM刷机资源
查看>>
linux怎么重定义命令,如何解决gcc linux中的多重定义错误?
查看>>