码迷,mamicode.com
首页 > 移动开发 > 详细

iOS IM开发建议(三)添加一个自定义键盘

时间:2016-05-20 11:19:25      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

  各类的主流IM,都有自己定义的键盘:有表情键盘,选图片的键盘。其实都是一个inputView。  

  首先,我们要确定,我们的键盘是输入框调用的。也就是,我们可以设置的是某一个textView的inputView。

// 让键盘进入编辑状态,替换输入源为自定义的fv
// fv 是一个自定义的UIView
- (void)callFaceKeyBoard:(UIButton *)button {
    [ktextView becomeFirstResponder];
    ktextView.inputView = fv;
    [ktextView reloadInputViews];
    [ktextView.inputView becomeFirstResponder];// 把自定义键盘设置为第一响应
}

  现在这个键盘是调出来了。那我们看看键盘怎么实现。

 1 .h
 2 #import <UIKit/UIKit.h>
 3 
 4 @interface FaceKeyboardView : UIView
 5 // 点击了哪一个表情
 6 @property(nonatomic,copy)void (^TapActionBlock)(NSInteger faceID);
 7 // 发送信息
 8 @property(nonatomic,copy)void (^SendEmojiBlock)();
 9 
10 - (instancetype)initWithFrame:(CGRect)frame faceArray:(NSArray *)facesArray;
11 @end
12 
13 
14 
15 .m
16 
17 #import "FaceKeyboardView.h"
18 @implementation FaceKeyboardView{
19     NSMutableArray * dataArray;// 表情的资源数组
20     UIScrollView * scrollView;// 主的选折页面
21     UIButton * sendButton;// 发送按钮
22 }
23 // 这个一定要实现 而且要设置YES
24 - (BOOL)canBecomeFirstResponder {
25     return YES;
26 }
27 - (instancetype)initWithFrame:(CGRect)frame faceArray:(NSArray *)facesArray{
28     self = [super initWithFrame:frame];
29     if(self) {
30         //设置发送按钮
31                code...
32         //设置主体内容
33         [self setScrollViewContent:facesArray];
34     }
35     return self;
36 }
37 
38 - (void)setScrollViewContent:(NSArray *)array {
39     //这里布置好每一个表情的view 添加点击事件
40 }
41 
42 - (void)touchThisView:(UIGestureRecognizer *)tap {
43     if([tap.view isKindOfClass:[UIImageView class]])
44     if(self.TapActionBlock) {
45         self.TapActionBlock(tap.view.tag);
46     }
47 }
48 
49 - (void)send:(UIButton *)button {
50     if(self.SendEmojiBlock){
51         self.SendEmojiBlock();
52     }
53 }
54 
55 @end
56             

  到这里,只要实现block,把对应的东西添加到textView里面就好了。

  当然要关掉它的话,就把textView的inputView设置为nil。

 

iOS IM开发建议(三)添加一个自定义键盘

标签:

原文地址:http://www.cnblogs.com/akforsure/p/5509671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!