iOS 键盘的监听 调整view的位置

iOS在处理键盘的出现和消失时需要监听UIKeyboardWillChangeFrameNotifications/UIKeyboardDidHideNotifications

- (void)viewDidLoad
{
    [super viewDidLoad];

//添加监听 键盘消失
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDown) name:UIKeyboardDidHideNotification object:nil];

//添加监听 键盘出现
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];
}

- (void)keyboardWillChangeFrame:(NSNotification *)noti{

//取出键盘动画的时间(根据userInfo的key-UIKeyboardAnimationDurationUserInfoKey)

    CGFloat duration = [noti.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue];

 //取得键盘最后的frame(根据userInfo的key----UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 227}, {320, 253}}";)

    CGRect keyboardFrame = [noti.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

//处理键盘出现的是页面的变化。。。。。。
}

- (void)keyboardDown
{
    //处理键盘消失是页面的变化 。。。。。。
}
时间: 2024-12-25 23:23:25

iOS 键盘的监听 调整view的位置的相关文章

ios ---键盘的监听事件

//在view将要出现的时候重载viewWillAppear方法添加通知 监听事件 keyboardWillShow:  keyboardWillHide: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:

Android 软键盘的监听(监听高度,是否显示)

Android官方本身没有提供一共好的方法来对软键盘进行监听,但我们实际应用时,很多地方都需要针对软键盘来对UI进行一些优化. 以下是整理出来的一个不错的方法,大家可以使用. 不过要注意的是,由于是使用ViewTreeObserver来进行监听,所以每次layout有所改变的话,都会触发,所以listner里面如果有改变layout的方法的话,要注意不要陷入无限触发循环了,这时需要加入一些标记值来规避,这个可以参考代码注释 public class SoftKeyboardUtil { publ

java鼠标与键盘事件监听

package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt

键盘-App监听软键盘按键的三种方式

前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面:在点击搜索框的时候,点击右下角的search符号键可以进行搜索:或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作. 效果图: function 1: 重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE_ENTER键(右下

js对手机软键盘的监听

js还没有办法对手机软键盘直接进行监听的,但是可以有其他角度来判断软键盘是否弹起.比如输入框是否获取焦点等.focusin和focusout支持冒泡,对应focus和blur, 使用focusin和focusout的原因是focusin和focusout可以冒泡,focus和blur不会冒泡,这样就可以使用事件代理,处理多个输入框存在的情况. $(document).on('focusin', function () { //软键盘弹出的事件处理 }); $(document).on('focu

移动端软键盘收起监听

在移动端进行表单操作时,时常需要监听键盘的收起,从而完成输入的处理.但浏览器并没有提供直接监听软键盘收起的接口,那该如何进行监听能?这里提供监听的兼容方案. 在安卓下,大部分浏览器在软键盘收起时,会触发resize事件,可以以此来监听:但ios操作系统并不会触发该事件,但大部分浏览器会触发表单的blur事件,所以可以以此为监听点.浏览器的软件盘监听状况如下表所示:   软键盘收起事件监听表 所以,通过监听onResize.onBlur可以实现移动端主流浏览器的软键盘收起操作:无法即时监听到的,可

iOS开发之监听网络连接,改变,断开

做iOS开发时,我们需要监控/监听网络状况,苹果提供了Reachability.h, Reachability.m. 导入Reachability.h 我们可以在 MainViewController的viewDidLoad方法内部写上: [self checkReachability]; 之后,具体方法如下 #pragma mark #pragma mark Reachability Methods #pragma mark - (void)checkReachability { [[NSNo

iOS电池的监听

#import "ViewController.h" #import <UIKit/UIKit.h> @interface ViewController () //@property(nonatomic,readonly) float     batteryLevel NS_AVAILABLE_IOS(3_0); // 0 .. 1.0. -1.0 if UIDeviceBatteryStateUnknown它返回的是0.00-1.00之间的浮点值. @end @imple

IOS开发—网络监听

网络监听用到的类为Reachability.h,这个Xcode项目里面是不自带的,需要从github上面下载,在使用的时候记着导入SystemConfiguration.framework. 首先是在AppDelegate.m中设置网络监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotifica