iOS_8_键盘操作简单
最后效果图:
BeyondViewController.h
//
// BeyondViewController.h
// 9_键盘的简单处理
//
// Created by beyond on 14-7-25.
// Copyright (c) 2014年 com.beyond. All rights reserved.
// #import <span style="font-family: Arial, Helvetica, sans-serif;"><UIKit/UIKit.h></span> @interface BeyondViewController : UIViewController
- (IBAction)exitKeyboard:(UIButton *)sender; @end </uikit>
BeyondViewController.m
//
// BeyondViewController.m
// 9_键盘的简单处理
/*
存在的问题:
1,弹出的键盘可能会遮住界面上的控件,解决方法:使用scrollView,或,动态降低控件的Y值(使之上移)
2,toolBar上面的两个button的点击事件,还没有实现
*/
// Created by beyond on 14-7-25.
// Copyright (c) 2014年 com.beyond. All rights reserved.
// #import "BeyondViewController.h" @interface BeyondViewController ()
{
// 键盘上面的附属工具条
UIToolbar *_toolBar;
}
@end @implementation BeyondViewController - (void)viewDidLoad
{
[super viewDidLoad]; // 为全部键盘上面加入工具条
[self addToolBarForKeyboard];
}
// 为全部键盘上面加入工具条
- (void)addToolBarForKeyboard
{
// mainBundel载入xib,扩展名不用写.xib
NSArray *arrayXibObjects = [[NSBundle mainBundle] loadNibNamed:@"KeyToolBar" owner:nil options:nil];
// 键盘附属工具条
_toolBar = arrayXibObjects[0];
// 为self.view内部的全部文本输入框设置toolBar
NSArray *array = self.view.subviews;
for (UIView *obj in array) {
if ([obj isKindOfClass:[UITextField class]]) {
// 为什么要强转,由于UIView的属性 inputAccessoryView 是readOnly
UITextField *obj2 = (UITextField *)obj;
obj2.inputAccessoryView = _toolBar;
}
} // 为toolBar中的第1个UIToolbarTextButton(上一个button)加入点击事件
//[[_toolBar.subviews firstObject] addTarget:self action:@selector(previousKeyboard:) forControlEvents:UIControlEventTouchUpInside]; // 为toolBar中的第2个UIToolbarTextButton(下一个button)加入点击事件
//[[_toolBar.subviews objectAtIndex:2] addTarget:self action:@selector(nextKeyboard:) forControlEvents:UIControlEventTouchUpInside]; // 为toolBar中的最后一个UIToolbarTextButton(完毕button)加入点击事件
[[_toolBar.subviews lastObject] addTarget:self action:@selector(exitKeyboard:) forControlEvents:UIControlEventTouchUpInside];
}
// toolBar里面,点击上一个button
- (void)previousKeyboard:(UIButton *)sender
{
NSLog(@"点击了上一个button,要激活上一个输入框");
}
// toolBar里面,点击下一个button
- (void)nextKeyboard:(UIButton *)sender
{
NSLog(@"点击了下一个button,要激活下一个输入框");
} // 退出键盘
- (IBAction)exitKeyboard:(UIButton *)sender {
// 方式1: self.view内部全部的文本框(包含子孙控件...)都退出第一响应者
[self.view endEditing:YES];
return; // 方式2:
// 遍历uiview里面全部的控件 ,resignFirstResponder
/*
for (int i=0; i<self.view.subviews.count; i++) {
[self.view.subviews[i] resignFirstResponder];
}
*/
NSArray *array = self.view.subviews;
for (UIView *obj in array) {
if ([obj isKindOfClass:[UITextField class]]) {
[obj resignFirstResponder];
}
} // 方式3:
// 在self.view的最开头,铺一个全屏的透明的button,连线,仅仅要在屏幕空白区域点击后,就能够调用上面的方式1,退出键盘 } @end
KeyToolBar.xib
版权声明:本文博主原创文章,博客,未经同意不得转载。
iOS_8_键盘操作简单的更多相关文章
- selenium中元素操作之简单的鼠标、键盘操作(三)
1.鼠标操作导入类:ActionChains --鼠标的操作形成一连串的动作链,由selenium的ActionChains类来完成模拟鼠标操作手表操作的过程:1.鼠标的操作,先放到一个列表中2.利用 ...
- Web报表工具FineReport填报界面键盘操作
对于一张填报数据较多的报表,需要用户频繁地操作鼠标.而FineReport填报界面除去按钮类型的控件,其余可以完全使用键盘而不需要用鼠标操作,对于用户而言,这将极大的节省信息录入的时间. 这里我们对填 ...
- MFC--响应鼠标和键盘操作
一个程序最重要的部分之一是对鼠标和键盘操作的响应. 一. 理解鼠标事件.之前对鼠标事件的认识仅仅局限于处理控件的单击与双击事件.但实际鼠标的操作包含很多.这里将以一个画图的小程序讲解对鼠标的响应. ...
- JQuery识别键盘操作 & 键盘快捷键
前几天写的那个项目登陆页是直接点击but登陆的,后来做完了之后不断的测试的时候就发现蛋疼之处了 每次在键盘上输入一长串密码之后,还得抬起手拿鼠标点一下确认登陆 直接就搜了一下,看了一下书 = = 其实 ...
- python selenium-webdriver 元素操作之键盘操作
selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘 ...
- python selenium-webdriver 元素操作之键盘操作(五)
上节介绍了模拟鼠标对元素的操作,本节主要介绍键盘对元素的操作,实际过程中鼠标对元素的操作比键盘对元素的操作更经常使用,但是键盘对元素的操作也很重要,本节主要介绍一下键盘对元素的操作. selenium ...
- WebDriver API——鼠标及键盘操作Actions
在自动化中我们可能需要用到鼠标或者是键盘操作,在webdriver中是Actions类进行这些操作的. 代码如下: Actions action = new Actions(driver); //-- ...
- AutoItLibrary之键盘操作(send)
最近有人问到我键盘操作用什么库?用到库里面的哪个方法?我在这里总结一下,第一次写,有片面的地方还请指出,一块进步.1.首先,用到的库是AutoItLibrary,用到的方法是send:按F5可用看到 ...
- Qt之股票组件-股票检索--支持预览框、鼠标、键盘操作
目录 一.感慨一下 二.效果展示 三.搜索编辑框 1.编辑框 2.预览框 四.相关文章 原文链接:Qt之股票组件-股票检索--支持预览框.鼠标.键盘操作 一.感慨一下 之前做过一款炒股软件,个人觉着是 ...
随机推荐
- 卸载QTP
卸载QTP11.5 1.首先需要卸载QTP11.5,点击exe文件,不点击重启 2.然后删除C:"Program Files"下的Mercury Interactive文件夹.(默 ...
- Test oracle db iops
Today, i need to test one database's iops and do something for oracle db's io test. How to test the ...
- HttpWeb服务器之--用OO方式写
虽然写的不是很好,但 最终解释权以及版权归13东倍所有! package com.web; import java.io.IOException; public class Test { public ...
- linux运维常用命令集
1.删除0字节文件 find -type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 PS -e -o "%C : %p : %z ...
- 虚幻4随笔4 从project開始
前文说到UE3開始.虚幻就使用了UnrealBuildTool(下面简称UBT)来编译和生成代码. 为什么这么做而不是使用VS是非常好理解的:由于VS跨平台会比較麻烦.像虚幻这样体量的proje ...
- 设计模式(4)-对象创建型模式-Prototype模式
1.对象创建型模式 1.4 Protoype模式 1.4.1需求 通过拷贝原形对象创建新的对象. 1.4.2结构 •P r o t o t y p e(Gr a p h i c) - ...
- SVNKit getFileFromSVN
/* * ==================================================================== * Copyright (c) 2004-2011 ...
- Hbase0.96源码之HMaster(一)
从main()函数開始 public static void main(String [] args) { VersionInfo.logVersion(); new HMasterCommandLi ...
- 区间Dp 暴力枚举+动态规划 Hdu1081
F - 最大子矩形 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Status Des ...
- linux通过使用mail发送电子邮件
通过外部方法发送的电子邮件 bin/mail默认为本地sendmail发送电子邮件,求本地的机器必须安装和启动Sendmail服务.配置很麻烦,并且会带来不必要的 资源占用.而通过改动配置文件能够使用 ...