UI细节点滴-UIScorllView和UITableView/UITextView拖动退出键盘方法
2016-06-24 10:18
525 查看
在实际开发中,我们常常会用到UIScrollView以及它的子类控件UITableView/UITextView来进行某些操作需要唤出键盘.通常调出键盘的方式是使相应的控件成为事件的第一响应者,例如在一个视图加载完成后的ViewDidLoad方法中,调出键盘:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.textView becomeFirstResponder]; // textView成为第一响应者,立即调出键盘;
}
在完成输入后,退出键盘的方式通常是取消第一响应者即可:
[self.view endEditing:YES]; // 注销第一响应者,退出键盘;
但有时候,我们需要处理在没有任何输入的时候,用户仅仅拖动了屏幕也可以退出键盘,一种常见的方式是使用UIScrollView的代理方法,监听拖动事件,一旦发生拖动则通过注销第一响应者的方式来退出键盘;
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self.view endEditing:YES];
}
其实IOS7.0系统中,UIScorllView中已经为我们提供了一个属性来判断是否拖动取消键盘,这样只需要通过设置这个属性的值来决定UIScorllView是否在被拖动的时候退出键盘;
@property(nonatomic) UIScrollViewKeyboardDismissMode keyboardDismissMode
keyboardDismissMode 是枚举类型,它可以取三个值:
typedef NS_ENUM(NSInteger, UIScrollViewKeyboardDismissMode) {
UIScrollViewKeyboardDismissModeNone, // 系统默认值
UIScrollViewKeyboardDismissModeOnDrag, // 拖动取消键盘
UIScrollViewKeyboardDismissModeInteractive,
} ;
通过这个属性,我们不需要再使用代理监听的方式来退出键盘了.在UITableView和UITextView中使用更为简单,仅仅给这个属性赋值即可实现拖动屏幕退出键盘.
self.textView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.textView becomeFirstResponder]; // textView成为第一响应者,立即调出键盘;
}
在完成输入后,退出键盘的方式通常是取消第一响应者即可:
[self.view endEditing:YES]; // 注销第一响应者,退出键盘;
但有时候,我们需要处理在没有任何输入的时候,用户仅仅拖动了屏幕也可以退出键盘,一种常见的方式是使用UIScrollView的代理方法,监听拖动事件,一旦发生拖动则通过注销第一响应者的方式来退出键盘;
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
[self.view endEditing:YES];
}
其实IOS7.0系统中,UIScorllView中已经为我们提供了一个属性来判断是否拖动取消键盘,这样只需要通过设置这个属性的值来决定UIScorllView是否在被拖动的时候退出键盘;
@property(nonatomic) UIScrollViewKeyboardDismissMode keyboardDismissMode
keyboardDismissMode 是枚举类型,它可以取三个值:
typedef NS_ENUM(NSInteger, UIScrollViewKeyboardDismissMode) {
UIScrollViewKeyboardDismissModeNone, // 系统默认值
UIScrollViewKeyboardDismissModeOnDrag, // 拖动取消键盘
UIScrollViewKeyboardDismissModeInteractive,
} ;
通过这个属性,我们不需要再使用代理监听的方式来退出键盘了.在UITableView和UITextView中使用更为简单,仅仅给这个属性赋值即可实现拖动屏幕退出键盘.
self.textView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
相关文章推荐
- SQL Queries from Transactional Plugin Pipeline
- 解决The current branch is not configured for pull No value for key branch.master.merge found in config
- easyui的基本用法
- SSIS Passing Parameters to an ADO .NET Source query;向ado.net数据源传递参数。
- Color types not allowed (at ‘drawable’ with value ‘#f0f0f0’)
- UIsheji
- UIsheji
- UiSelector的官方帮助文档
- NGUI自适应
- 实例讲解iOS中的UIPageViewController翻页视图控制器
- iOS UIFont 字体名字大全
- EasyUI在表单提交之前进行验证的实例代码
- 背水一战 Windows 10 (18) - 绑定: 与 Element 绑定, 与 Indexer 绑定, TargetNullValue, FallbackValue
- 机器学习学习笔记 PRML Chapter 2.0 : Prerequisite之Sufficient Statistics
- Angular-ui-route
- ssm框架搭建+easyui增删改查实现
- android FragmentTabHost切换Fragment时避免UI重新加载
- arduino 学习笔记(一)
- QtQuick 全局变量解决ListView嵌套子ListView中访问子model难题
- 用代码创建UIPageControl时,无法显示的问题