textView的用法及技巧
转自:http://bbs.9ria.com/thread-244445-1-1.html
一、新建一个textView
//初始化
UITextView *textView = [[[UITextView alloc] init] autorelease];//设置代理 需在interface中声明UITextViewDelegate
textView.delegate = self;//字体大小
textView.font = [UIFont systemFontOfSize:16];//添加滚动区域
textView.contentInset = UIEdgeInsetsMake(-11, -6, 0, 0);//是否可以滚动
textView.scrollEnabled = NO;//获得焦点
[textView becomeFirstResponder];
二、键盘操作
- //返回键的类型
- textView.returnKeyType = UIReturnKeyDefault;
- //键盘类型
- textView.keyboardType = UIKeyboardTypeDefault;
复制代码
三、隐藏键盘的几种方式 个人还是认为最方便的是在键盘上加上一个ToolBar,在上面加上一个按钮来隐藏键盘
①在键盘上加上隐藏按钮
- //定义一个toolBar
- UIToolbar * topView = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];
- //设置style
- [topView setBarStyle:UIBarStyleBlack];
- //定义两个flexibleSpace的button,放在toolBar上,这样完成按钮就会在最右边
- UIBarButtonItem * button1
=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:self
action:nil]; - UIBarButtonItem * button2 =
[[UIBarButtonItem alloc]initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:self
action:nil]; - //定义完成按钮
- UIBarButtonItem * doneButton = [[UIBarButtonItem
alloc]initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self
action:@selector(resignKeyboard)]; - //在toolBar上加上这些按钮
- NSArray * buttonsArray = [NSArray arrayWithObjects:button1,button2,doneButton,nil];
- [topView setItems:buttonsArray];
- [textView setInputAccessoryView:topView];
复制代码
最终效果
还有几种也可隐藏键盘的方式
②用回车键,前提是你的textView中不需要用到回车键
- -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
- if ([text isEqualToString:@""])
- {
- [textView resignFirstResponder]; return NO;
- }
- return YES;
- }
复制代码
③触摸空白处隐藏键盘
- -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- {
- //隐藏键盘
- [textView resignFirstResponder];
- }
复制代码
四、
使键盘不挡住输入框
在view中添加一个子view,设置此子view的tag值为1000,在此view上添加一个textView和一个发送按钮,如下图;我们要达到
textView的键盘弹出时,整个View往上平移,键盘消失,view往下平移的效果,模拟发送短信的界面。
<ignore_js_op>
设置textView圆角
- //设置textView圆角
- [self.textView.layer setCornerRadius:10];
复制代码
①、在viewWillAppear中添加键盘监听事件
- //添加键盘的监听事件
- //注册通知,监听键盘弹出事件
- [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification
object:nil]; - //注册通知,监听键盘消失事件
- [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDidHidden) name:UIKeyboardDidHideNotification
object:nil];
复制代码
②、完成①selector中键盘弹出keyboardDidShow:和消失keyboardDidHidden方法 在.m文件#import后面添加
- //动画时间
- #define kAnimationDuration 0.2
- //view高度
- #define kViewHeight 56
复制代码
键盘出现
- // 键盘弹出时
- -(void)keyboardDidShow:(NSNotification *)notification
- {
- //获取键盘高度
- NSValue *keyboardObject = [[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey];
- CGRect keyboardRect;
- [keyboardObject getValue:&keyboardRect];
- //调整放置有textView的view的位置
- //设置动画
- [UIView beginAnimations:nil context:nil];
- //定义动画时间
- [UIView setAnimationDuration:kAnimationDuration];
- //设置view的frame,往上平移
- [(UIView *)[self.view viewWithTag:1000]
setFrame:CGRectMake(0,
self.view.frame.size.height-keyboardRect.size.height-kViewHeight, 320,
kViewHeight)]; - [UIView commitAnimations];
- }
复制代码
键盘消失
- //键盘消失时
- -(void)keyboardDidHidden
- {
- //定义动画
- [UIView beginAnimations:nil context:nil];
- [UIView setAnimationDuration:kAnimationDuration];
- //设置view的frame,往下平移
- [(UIView *)[self.view viewWithTag:1000] setFrame:CGRectMake(0, self.view.frame.size.height-kViewHeight, 320, kViewHeight)];
- [UIView commitAnimations];
- }
复制代码
效果图:
textView的用法及技巧的更多相关文章
- MFC总结之CListCtrl用法及技巧(二)
续第一篇:MFC总结之CListCtrl用法及技巧(一) http://blog.csdn.net/zwgdft/article/details/7560592 本篇重点介绍:禁止拖动表头.让第一列居 ...
- MFC总结之CListCtrl用法及技巧(一)
本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧.当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅.主要包括以下十三点内容:基本操作.获取选中行的 ...
- (转载) TextView使用一些小技巧
TextView使用一些小技巧 标签: textviewandroid开发 2015-10-09 16:13 810人阅读 评论(0) 收藏 举报 分类: Android(20) 本文主要讲一些T ...
- OpenResty 反向代理的用法与技巧
Nginx最开始是作为反向代理被熟知的,基于它的OpenResty的自然也是支持反向代理的,下面我们就来看看它的一些基本用法以及在使用过程中的一些技巧. 一.基本用法 在业务环境中,可能会将OpenR ...
- border-radius的用法与技巧总结
border-radius属性用法重点罗列 border-radius: none | <length>{1,4} [/<length>{1,4}] ? .如果存在反斜杠/,则 ...
- grep的用法,小技巧,模板中含有\t时:grep -P "^\t" file
linux中grep和find的用法区别 本文章详细的介绍了关于在linux中的grep和find两个命令的用法介绍,以及后面总结了它们两年用法区别哦. 先我们来介绍一下关于grep用法和一些小注意事 ...
- Fragment 的用法小技巧
public static class ArrayListFragment extends ListFragment { int mNum; /** * Create a new instance o ...
- xpath相关用法及技巧
本节讲解网页解析神器----XPath lxml下载 xpath基本用法 xpath插件 Xpath及XML路径语言,它是一门在XML文档查找信息的语言. 一:lxml下载以及安装 首先需要解决lxm ...
- javascript 笔记——bind 用法小技巧
$(function(){ //代码阅读能力 function speak(name){ return "Hello " + name; } //此处写代码 //方法一 //重点是 ...
随机推荐
- jquery serialize()函数用法
jquery serialize()函数用法<pre><html><head><script type="text/javascript" ...
- ios遇到的坑
总结体会:很多ios兼容性问题都是由于body设置了height:100% ios中input输入不了 在ios中margin属性不起作用 设置html body的高度为百分比时,margin-bot ...
- Flutter 构建的 Mac 桌面应用上无法发出网络?
在上一篇文章中我们分享了,如何开发桌面应用.在本章文章中,来解决一下为何在 Mac 中无法发出网络情况的原因. 起因 事情起因是这样的:我总觉得写一个 Demo 不足以体现我们开发同学的能力.直到最 ...
- 云计算时代,你所不了解的 DevOps
在本文中,我们讨论如何快速地从更高的层面理解DevOps,介绍准备改变文化的最佳实践.我们将讨论DevOps的目标以及从组织管理层得到支持的方法,为DevOps的概念打下基础.我们将试着从根本上介绍使 ...
- nyoj 1022 合纵连横 (并查集<节点删除>)
合纵连横 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 乱世天下,诸侯割据.每个诸侯王都有一片自己的领土.但是不是所有的诸侯王都是安分守己的,实力强大的诸侯国会设法 ...
- python 抓取youtube教程
前言: 相信大家很多人都看过youtube网站上的视频,网站上有很多的优质视频,清晰度也非常的高,看到喜欢的想要下载到本地,虽然也有很多方法,但是肯定没有python 来的快, 废话不多说,上代码: ...
- SQLite性能 - 它不是内存数据库,不要对IN-MEMORY望文生意。
SQLite创建的数据库有一种模式IN-MEMORY,但是它并不表示SQLite就成了一个内存数据库.IN-MEMORY模式可以简单地理解为,本来创建的数据库文件是基于磁盘的,现在整个文件使用内存空间 ...
- FPGA基础(verilog语言)——语法篇
verilog语言简介 verilog语言是一种语法类似于c的语言,但是与c语言也有不同之处,比如: 1.verilog语言是并行的,每个always块都是同时执行,而c语言是顺序执行的 2.veri ...
- 组长组——“多彩夕阳”APP评价
基于NABCD评论,及改进建议 一.组长组NABCD: N-需求背景: (1)我国老龄化日益加重,已突破两亿.目前人数还在增加,解决老年福祉成为社会关注的民生话题. (2)智能手机越来越普遍,老年人已 ...
- Dart Learn Notes 03
操作符 dart 有一套自己定义的操作符: 这里我就不再写了,直接copy一份官网的. 如果有过编程基础,上边展示的操作符应该都不陌生. 算术运算符 加: + 减: - 乘: * 除: / 取余: % ...