- 2
- 0
- 约3.08千字
- 约 5页
- 2017-01-05 发布于贵州
- 举报
完美实现自定义软键盘
感谢alan转载的文章给的灵感。/bbs/read.php?tid-3999.html思路:1.用静态方法找到应用程序当前view(window)中的UIKeyboard的view2.在键盘的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:@UIKeyboard] == YES)
????????{
????????????[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:3
您可能关注的文档
- 好项目十页谈之投资人教你怎样写BP和做项目路演.docx
- 好听的歌曲收集,个人整理哦.doc
- 如何修改企业版2012云平台的端口.doc
- 如何做好职业发展沟通.doc
- 如何利用前概念优化科学课堂教学的实践研究.doc
- 如何加入义工联.docx
- 如何完善0809司法实践中的受贿罪刑罚0806.doc
- 如何在美国专利局网站查询授权或提交申请的专利.doc
- 如何树立80、90后员工的良好心态满分答案.doc
- 如何本地计算机测试网站.doc
- 全过程工程管理造价咨询工程监理项目服务方案投标方案(技术部分).doc
- 招标代理服务投标技术服务方案(技术方案).doc
- AI大模型与AIGC技术在公安领域的应用解决方案(99页 PPT).pptx
- 工业4.0智能制造数字工厂规划方案.pptx
- 树立社会主义核心价值观.docx
- 三年(2023-2025)中考历史真题分类汇编(全国)专题21 科技文化与社会生活(解析版).docx
- 2025年中考道德与法治真题完全解读(吉林卷).pdf
- 2025年中考道德与法治真题完全解读(安徽卷).pdf
- 三年(2023-2025)中考历史真题分类汇编(全国)专题14 人民解放战争(解析版).pdf
- 三年(2023-2025)广东中考历史真题分类汇编:专题03 中国近代史(八年级上册)(解析版).docx
原创力文档

文档评论(0)