自定义键盘
来源:互联网 发布:查询域名是不是被降权 编辑:程序博客网 时间:2024/06/10 09:17
有一种思路叫寄生...
我相信是懒人推动了世界的发展,既然iphone有了自己的软件盘,我们什么还要自己实现其功能呢。
so,只要寄生在上面就行了。
感谢alan转载的文章给的灵感。
http://www.cocoachina.com/bbs/read.php?tid-3999.html
思路:
1.用静态方法找到应用程序当前view(window)中的UIKeyboard的view
2.在键盘的view上帖上自己的view,(精彩了,这个自己的view就是你自己键盘,任意发挥,什么类型键盘都可以做了)
3.根据需要调整系统键盘的大小以满足你想要的尺寸
4.给自己的键盘view上的button添加方法,实现功能
主要代码:
添加自身类为键盘事件的观察者
复制代码
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(keyboardWillShow:)
- name:UIKeyboardWillShowNotification
- object:nil];
核心思路代码:
复制代码
- - (void)keyboardWillShow:(NSNotification *)note
- {
- UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];//知识点
- for(int i=0; i<[tempWindow.subviews count]; i++)
- {
- keyboard = [tempWindow.subviews objectAtIndex:i];
- if([[keyboard description] hasPrefix:@"
- {
- [keyboard setFrame:CGRectMake(0, 460, 320, 345)];
- [self congfigKeypad];
- [keyboard addSubview:keyPadView1];
- }
- }
- }
比如配置方法可以是这样:
复制代码
- -(void)congfigKeypad
- {
- SearBtn *one = [[SearBtn alloc] initWithFrame:CGRectMake(81, 3, kNumPadW, kNumPadH) index:1 ContextString:@"1" type:kNumPadType];
- [one setImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateNormal];
- [one addTarget:self action:@selector(buttonClickAtIndex:) forControlEvents:UIControlEventTouchUpInside];
- //......略
- }
添加NSMutalbeString作为文本域字串的容器,点击button后append的button对应的字串。
复制代码
- - (void)buttonClickAtIndex:(id)sender
- {
- SearBtn *btnItem = (SearBtn*)sender;
- NSString *str = btnItem->btnText;
- [s_text appendString:str];
- [sBar setText:s_text];
- }
再实现一个deleteChar的方法作为退格键
思路:
复制代码
- if ([s_text length] > 0)
- {
- NSRange rang;
- rang.location = [s_text length] - 1;
- rang.length = 1;
- [s_text deleteCharactersInRange:rang];
- }
现在点击各种文本域,应该就可以现实自己的键盘了。
继续优化
用textfield的代理方法控制键盘的字串类型,长度,和响应消失
[ 此帖被evangel在2009-12-17 22:32重新编辑 ]
图片:图片 1.png
图片:图片 2.png
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 键盘自定义
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 自定义键盘
- 键盘通知和自定义键盘
- ANDROID自定义输入法-自定义键盘
- ANDROID自定义输入法-自定义键盘
- ANDROID自定义输入法-自定义键盘
- ANDROID自定义输入法-自定义键盘
- SQLServer2008数据库分离与附加
- 又拍网技术架构中的分库设计
- Dataview根据数字(字符串类型)排序Sort
- java的 LOCK 和 CONDITION 的深入了解
- java学习笔记二
- 自定义键盘
- Remove all elements with values less than 50
- 彻底了解红黑树
- ListView 数据绑定、数据汇总及自定义排序示例
- 生产环境下的服务器的Crontab写法
- Android通过http方式获取JSON字符串并解析的注意事项(乱码,小黑框)
- discuz 在处理全局变量上的一点安全技巧
- Use find the search an element in deque
- QTP录制日历控件不能回放解决办法