iOS中如何自定制键盘呢?

很简陋的demo,主要是实现了自定制键盘的具体思路,里边具体“按键”要自己实现。下面只实现了对textField的键盘监控,textView的键盘是一样的。先看看效果吧:

这里写图片描述

设计模式:单例

#import <UIKit/UIKit.h>

@interface CKeyboardView : UIView

+ (CKeyboardView *)shareInstance;

@end

因此,我们完成了第一步:

textField.inputView = [CKeyboardView shareInstance];

第二步,怎么捕捉到当前输入的textField呢?

我们可以获取当前的第一响应者:
然而,这个方法是Apple私有的,如果使用了,上架会被拒!
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
UIView *firstResponder = [keyWindow performSelector:@selector(firstResponder)];

因此,我采用了第二种方式获取,即:

#import <UIKit/UIKit.h>

@interface UIResponder (FirstResponder)

//使用时只需要对UIResponder类调用该类方法即可获得当前第一响应者
+ (id)getFirstResponder;

@end

那么,textField需要自己特定的键盘类型,比如数字、电话、邮件等等,textField本身有keyboardType属性,当然我们也可以通过为它增加我们自定制键盘特制的属性,这里用到了runTime。

#import <UIKit/UIKit.h>

typedef enum : NSUInteger {
    CustomKeyboardTypeNormal,       // 默认就Normal
    CustomKeyboardTypeNumber,       // 数字键盘
} CustomKeyboardType;

@interface UITextField (CKeyboardType)

// 自定制键盘类型
@property (nonatomic,assign) CustomKeyboardType customKeyboardType;

@end

最后,我们在CKeyboardView对键盘进行监控,得到引起键盘弹起的第一响应者textField,然后我们就可以显示出相应的键盘款式。
这个demo在github上,点击可以查看下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值