1.创建并初始化

创建UITextView的文件,并在.h文件中写入如下代码:

#import <UIKit/UIKit.h>  @interface TextViewController : UIViewController <UITextViewDelegate>
{  UITextView *textView;
}  @property (nonatomic, retain) UITextView *textView;  @end  

在.m文件中初始化这个textview,写入代码如下:

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 tocome to serve their country.\n\nNow is the time for all good developers to cometo 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。代码如下:

- (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;    }    - (void)leaveEditMode {    [self.textView resignFirstResponder];    }    

(2)如果你的textview里不用回车键,可以把回车键当做退出键盘的响应键。代码如下:

#pragma mark - UITextView Delegate Methods    -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text    {    if ([text isEqualToString:@"\n"]) {    [textView resignFirstResponder];    return NO;    }    return YES;    }  

这样无论你是使用电脑键盘上的回车键还是使用弹出键盘里的return键都可以达到退出键盘的效果。

(3)还有你也可以自定义其他加载键盘上面用来退出,比如在弹出的键盘上面加一个view来放置退出键盘的Done按钮。

代码如下:

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];    [doneButton release];    [btnSpace release];    [helloButton release];    [topView setItems:buttonsArray];    [tvTextView setInputAccessoryView:topView];    -(IBAction)dismissKeyBoard    {    [tvTextView resignFirstResponder];    }    

(4)设置UITextView圆角问题

做法是在 #import QuartzCore/QuartzCore.h 后,便能調用[textView.layer setCornerRadius:10]; 來把 UITextView 设定圓角

(5)UITextView根据文本大小自适应高度

通过实现文本字数来确定高度,如下:

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];  

只有UILabel需要定义的numberoflines为0,即不做行数的限制。如下:

[label  setNumberOfLines:0];
[label  setFrame:CGRectMake(40, 135, 240, size.height+10)];
[label setText:desc];   

(6)UITextView自定选择文字后的菜单

在ViewDidLoad中加入:

UIMenuItem *menuItem = [[UIMenuItem alloc]initWithTitle:@"分享到新浪微博" action:@selector(changeColor:)];
UIMenuController *menu = [UIMenuController sharedMenuController];
[menu setMenuItems:[NSArray arrayWithObject:menuItem]];
[menuItem release];  

当然上面那个@selector里面的changeColor方法还是自己写吧,也就是说点击了我们自定义的菜单项后会触发的方法。

然后还得在代码里加上一个方法:

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if(action ==@selector(changeColor:))
{
if(textView.selectedRange.length>0)
return YES;
}
return NO;
} 

实现后如下图:

今天的UITextView就讲到这里,主要讲了UITextView的初始化和开发中会遇到的一些问题和自定义等问题。谢谢大家支持哈。

来源:http://blog.csdn.net/qiaoshe/article/details/6955091

UITextView 控件-IOS开发相关推荐

  1. UISlider 滑块控件—IOS开发

    PC上的滑块是很丑陋的,因为我们只能通过鼠标去拖动他.不过当Jobs把它移植到IOS上时一切变得酷起来,因为我们可以通过手指去拖动它,这种感觉是很妙的. 滑块为用户提供了一种可见的做范围调整的方法,用 ...

  2. UISwitch 开关控件—IOS开发

    正如分段控件代替了单选按钮,开关也代替了点选框.开关是到目前为止用起来最简单的控件,不过仍然可以作一定程度的定制化. 一.创建 UISwitch* mySwitch = [[ UISwitch all ...

  3. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  4. QT中树控件QTreeView开发实例

    转自:http://mobile.51cto.com/symbian-268700.htm 本文讲解了QT中树控件QTreeView开发实例,对于QTreeView没有过多的讲解,那么不说废话了,看代 ...

  5. [转]C#开发ActiveX控件,.NET开发OCX控件案例

    引自:百度   http://hi.baidu.com/yanzuoguang/blog/item/fe11974edf52873aaec3ab42.html 讲下什么是ActiveX控件,到底有什么 ...

  6. devexpress控件教程 开发workflow设计器这么简单

    如果你的项目的OA,尤其是政府部门的OA,那么一定会涉及工作流这个功能.这个模块说大不大.说小不大,最头疼的就是它的设计器,一直没有合适的.虽然微软出了工作流的3.5和4.0版本,但也没有配套的设计器 ...

  7. 用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件

    用C#编写ActiveX控件,开发浏览器控件,注册ActiveX 控件 用C#编写ActiveX控件 开发浏览器控件这是本控件开发完成后的一个简单应用.我们可以利用它以本地文件夹为单位来批量更新服务器 ...

  8. MFC ActiveX (ocx)控件的开发

    前言 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM). ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个 ...

  9. UITextView控件_文字内容居左居上

    创建一个UITextView控件,输入文字,默认是居左居中的,如果想要居上居左的效果,只需要在ViewDidLoad方法中加入如下代码: //使uitextview空间的内容 居上居左 if ([se ...

最新文章

  1. java jeditorpane 自动换行_JDIC 中利用WebBrowser内置浏览器到java application中 | 学步园...
  2. 通用测试用例大全(转自——知了.Test)
  3. 生活不是拍电影,不会在关键时刻有个人来救你。
  4. Android 性能优化----(3)内存优化指南
  5. 大厂后端必备分布式,一定要好好学|文末有1元福利
  6. 【换句话说】【等价描述】—— 定义及概念的不同描述
  7. SVN update拒绝访问,clean up失败
  8. 《数学之美》吴军-读书笔记
  9. 远程网络教学系统功能(用例图)
  10. 小技巧-彻底删除U盘中的文件
  11. 如何打开电脑c语言窗口,C语言控制台窗口图形界面编程(五). -电脑资料
  12. ipset如何与netfilter内核模块进行通信
  13. Tomcat 基础配置
  14. 安卓智能语音机器人--AlphaGo?你也可以
  15. python做es的聚合统计和分页读取
  16. 上“天”入“地”,都少不了亚马逊云科技这个云引擎
  17. python自学作业_python学习作业(一)
  18. 用反汇编分析c++RVO开启和关闭时的底层原理以及C++prvalue,xvalue和lvalue的相关知识
  19. java 集成 v8_V8 的 Java 封装版本 J2V8
  20. 操作系统实验一:操作系统初步 实验报告

热门文章

  1. 信息学奥赛C++语言:格莱尔的香蕉
  2. www.android ind.com,Android
  3. [Unity] ACT 战斗系统学习 3:ScriptableObject
  4. Docker网络代理配置
  5. vuejs路由插件:vue-router的工作原理
  6. 织梦dedecms财务会计代理记账财税公司网站模板 带手机版
  7. android glide加载不出图片_Glide实现共享元素无缝转场效果,只需四步!
  8. python虚拟环境安装和配置_Python3安装虚拟环境virtualenvwrapper和配置
  9. 直播短视频手机APP应用下载页面静态html网页模板
  10. 博客SEO文字转链接工具