切换系统自带键盘为自定义键盘

if (self.textView.inputView == nil) { // 切换为自定义的表情键盘

HWEmotionKeyboard *emotionKeyboard = [[HWEmotionKeyboard alloc] init];// 自定义的键盘

emotionKeyboard.width = self.view.width;

emotionKeyboard.height = 216;

self.textView.inputView = emotionKeyboard;

} else { // 切换为系统自带的键盘

self.textView.inputView = nil;

}

// 开始切换键盘

self.switchingKeybaord = YES;//申明一个BOOL值监听键盘的切换

// 退出键盘

[self.textView endEditing:YES];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

[self.textView becomeFirstResponder];

self.switchingKeybaord = NO;// 结束键盘

});

#pragma mark - 监听方法

/**

* 键盘的frame发生改变时调用(显示、隐藏等)

*/

- (void)keyboardWillChangeFrame:(NSNotification *)notification

{

// 如果正在切换键盘,就不要执行后面的代码

if (self.switchingKeybaord) return;

}

时间: 2024-08-29 21:49:06

切换系统自带键盘为自定义键盘的相关文章

IOS开发-键盘通知自定义键盘

利用键盘通知可实现效果如下: 1.UIKeyboardWillShowNotification: 当点击到可输入的控件上(一般是UITextField)时,键盘会自动显示,并且触发UIKeyboardWillShowNotification通知: UIKeyboardWillHideNotification: 当点击离开可输入的控件时,键盘会自动隐藏,并且触发UIKeyboardWillHideNotification通知. 所以,要注册这两种通知事件,在键盘显示/隐藏时,做出反应. 3.通知的

创建地图 大头针 系统自带的和自定义的

@interface ViewController () <MKMapViewDelegate> { //地图对象 MKMapView *_mapView; UILabel *_userLocationLabel;  //用户坐标 } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self createMapView]; [self createAnnotations]; //调用

iOS自定义键盘和系统键盘切换且文本输入框一直获得焦点

UITextView用来进行文本输入.方法becomeFirstResponder和resignFirstResponder可以用来进行弹出系统键盘和收下系统键盘. 弹出系统键盘,文本输入框获得焦点.收下系统键盘,文本输入框失去焦点.那么,问题来了. 某个条件下,如点击界面上的某个按钮,展示自定义键盘.再次点击,切换到系统键盘.先收下系统键盘,再展示自定义键盘.比如移动自定义键盘View的Frame.Y.但这时因为收下系统键盘,本文输入框失去焦点.虽然展示了自定义键盘.但用户体验很不好.光标没有

UITextView自定义键盘和系统键盘

UITextView有inputView 和 inputAccessoryView 两个属性,都指定了相应的视图, inputAccessoryView 对象显示在 inputView 对象的上面.与输入相关的还有一个 reloadInputViews 方法用来重新载入输入视图.如图: 代码: if (bt.selected == YES) { bt.selected = NO; [m_textView setInputView:nil]; [m_textView becomeFirstResp

tabBar切换不同控制器的封装(自定义导航+自定义uiviewcontroler+系统自带tabbar+自定义tabbarController)

首先,一个app的搭建环境非常重要.既要实现基本功能,又要考虑后期优化的性能. 现在很多应用不仅仅是系统自带的控制器,由于需求复杂,基本上需要自定义多控制器来管理. 新建一个BasicNavigationViewController,继承UINavigationController 在这里实现导航外观,方法什么的. 示例代码如下: 接着自定义一个BasicTabbarViewController,继承UITabBarController 代码如下: #import <UIKit/UIKit.h>

Android 平板中 自定义键盘(popuwindow) 居于屏幕左下方 仿微信的密码输入界面

之前博客中,介绍过使用谷歌提供的键盘的一些api,可以很好地自定义键盘,参考我之前的博客链接:android 自定义键盘 ,这个有一个局限性,只能占满屏幕,无法做到只能占一部分的需求键盘,如下图我平板中的键盘需求:(由于公司保密需要,所以比较恐怖一点,嘿嘿) 类似于上方的左下角的一小块键盘,这就不能使用系统自带的一些键盘api,需要自己写布局,并且对输入的金额进行位数的限制,以及一些栏位输入的整数和小数位的控制,整体的实现步骤如下; 1.点击某个edittext,弹出下方的键盘(也就是使用pop

iOS8新特性扩展(Extension)应用之四——自定义键盘控件

iOS8新特性扩展(Extension)应用之四--自定义键盘控件 iOS8系统的开放第三方键盘,使得用户在输入法的选择上更加自主灵活,也更加贴近不同语言的输入风格.这篇博客,将介绍如何开发一个第三方的键盘控件. 一.了解UIInputViewController类 UIInputViewController是系统扩展支持键盘扩展的一个类,通过这个类,我们可以自定义一款我们自己的键盘提供给系统使用. 首先,我们先来看一下这个类中的一些属性和方法: @property (nonatomic, re

4.键盘修饰符以及自定义键盘修饰符

1.按键修饰符的使用: 为name文本框添加keyup按键事件:监听特定键enter的事件(enter:Vue内部提供的) <label> Name: <input type="text" class="form-control" v-model="name" @keyup.enter="add"> </label><input type="button" valu

Android 设置系统的返回键 和软键盘获取焦点问题

很多朋友出现过这样的一个问题,当底部弹出评论框时,有几个问题,一个是软件盘弹出时怎么让焦点在输入框,关于这个问题,本人也是遇到过,解决了很久,有的是在布局设置或者代码里setFocusable(true),并没有用,又在代码或者代码里设置requestFocus(),依然没有用,其实这个解决办法是没有错的,但是为什么会没用呢,因为并没有及时是在软件盘弹出时设置,所以先提出隐藏和显示软件盘的方法 private void onFocusChange(boolean hasFocus) { fina