iOS开发之禁止用户切换键盘(防止用户切换其它键盘)
2016-05-10 23:43
417 查看
iOS开发时为了安全或其它原因(特别是开放了第三方输入法之后),我们不想让用户切换键盘,但是ios中不让用户换键盘只有给textField设置secureTextEntry为NO,代价是输入的内容会变成小黑点,如果我们要输入的内容不是密码呢?
下面,就让水平哥来告诉你,不让内容变成小黑点的情况下,怎么才能让用户换不了键盘
首先,创建textField我就不写了,你们自己写,代理记得要加上
#pragma mark - 协议
//实现textField的这个协议
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
//判断一下,哪个是不让换键盘的textField
if (textField ==
_IdCardText) {
_IdCardText.secureTextEntry =
YES;
}
}
然后,再viewDidLoad里写上键盘通知
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardWillShowNotification
object:nil];
实现通知调用的方法
- (void)keyboardWasShown:(NSNotification *)notif
{
NSDictionary *info = [notif
userInfo];
NSValue *value = [info
objectForKey:UIKeyboardFrameBeginUserInfoKey];
CGSize keyboardSize = [value
CGRectValue].size;
DLog(@"keyBoard:%f", keyboardSize.height);
if (keyboardSize.height>0 &&
_IdCardText.secureTextEntry ==
YES) {
//不让换键盘的textField的
_IdCardText.secureTextEntry =
NO;
}
}
个人觉得ios内部里在出键盘之前会判断一下secureTextEntry属性的值,然后确定弹出的键盘是否带一个像地球仪一样图标(用于切换键盘的按键)的键盘,我们可以在键盘出来后把secureTextEntry属性值换掉,这样的话,出来的键盘就是不可换的,内容也不会变成小黑点。
下面,就让水平哥来告诉你,不让内容变成小黑点的情况下,怎么才能让用户换不了键盘
首先,创建textField我就不写了,你们自己写,代理记得要加上
#pragma mark - 协议
//实现textField的这个协议
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
//判断一下,哪个是不让换键盘的textField
if (textField ==
_IdCardText) {
_IdCardText.secureTextEntry =
YES;
}
}
然后,再viewDidLoad里写上键盘通知
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardWillShowNotification
object:nil];
实现通知调用的方法
- (void)keyboardWasShown:(NSNotification *)notif
{
NSDictionary *info = [notif
userInfo];
NSValue *value = [info
objectForKey:UIKeyboardFrameBeginUserInfoKey];
CGSize keyboardSize = [value
CGRectValue].size;
DLog(@"keyBoard:%f", keyboardSize.height);
if (keyboardSize.height>0 &&
_IdCardText.secureTextEntry ==
YES) {
//不让换键盘的textField的
_IdCardText.secureTextEntry =
NO;
}
}
个人觉得ios内部里在出键盘之前会判断一下secureTextEntry属性的值,然后确定弹出的键盘是否带一个像地球仪一样图标(用于切换键盘的按键)的键盘,我们可以在键盘出来后把secureTextEntry属性值换掉,这样的话,出来的键盘就是不可换的,内容也不会变成小黑点。
相关文章推荐
- iOS实现数字,字母或符号组合的有效性验证
- iOS开发小技巧--利用运行时得到隐藏的成员变量
- iOS逆向工程-工具篇
- iOS学习——几种数据持久化方法
- iOS开发小技巧--设置按钮圆角
- iOS不得姐项目--登录模块的布局,设置文本框占位文字颜色,自定义内部控件竖直排列的按钮
- iOS开发小技巧--设置cell左右有空隙,设置分割线的新思路,重写setFrame:让别人在外界无法修改控件的大小
- iOS不得姐项目--推荐关注模块(一个控制器控制两个tableView),数据重复请求的问题,分页数据的加载,上拉下拉刷新(MJRefresh)
- iOS视频拍摄和播放工具SKVideoManager
- iOS 开启文件共享权限
- iOS中都有什么设计模式?各个设计模式的作用?
- iOS中不同形式的图文混排技术的实现总结
- iOS开发中页面跳转的方法
- iOS获取屏幕尺寸的方法
- IOS开发中响应者链
- 在IOS 8 iOS 9 中使用CoreLocation 获取地理位置
- IOS数据存储之NSUserDefaults
- iOS quartzCore第八章—— CATextLayer的运用
- IOS layoutSubviews总结
- iOS获取所有照片