• iOS 关于键盘监听


    step—1:键盘的监听

    1.一般在viewWillAppear:方法中添加监听事件

    - (void)viewWillAppear:(BOOL)animated{

    [superviewWillAppear:animated];

     //增加监听,当键盘出现或改变时收出消息

        [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotificationobject:nil];

     //增加监听,当键退出时收出消息

        [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotificationobject:nil];

    }

    //当键盘弹出时调用

    - (void)keyboardWillShow:(NSNotification*)notification{

     //获取键盘的高度

     NSDictionary*userInfo = [notification userInfo];

     NSValue*value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];

     CGRectkeyboardRect = [value CGRectValue];

     CGFloatheight = keyboardRect.size.height;

     //第一种 self.view 平移的属性

     //self.view.transform=CGAffineTransformMakeTranslation(0,-height);

     //第二种 self.view frame的属性

     CGRectframe = self.view.frame;

        frame.origin.y= -height;

     self.view.frame= frame;

     NSLog(@"键盘打开...%@",NSStringFromCGRect(self.view.frame));

    }

    //当退出退出时调用

    - (void)keyboardWillHide:(NSNotification*)notification{

     //获取键盘的高度

     NSDictionary*userInfo = [notification userInfo];

     NSValue*value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];

     CGRectkeyboardRect = [value CGRectValue];

     CGFloatheight = keyboardRect.size.height;

     //第一种 self.view 平移的属性

     //self.view.transform=CGAffineTransformIdentity;

     //self.view.transform=CGAffineTransformMakeTranslation(0,0);

     //第二种 self.view frame的属性

     CGRectframe = self.view.frame;

         frame.origin.y= 0;

     self.view.frame= frame;

     NSLog(@"键盘关闭...%@",NSStringFromCGRect(self.view.frame));

    }

    2.一般在viewWillDisappear:或dealloc 方法中移除

    - (void)viewWillDisappear:(BOOL)animated{

        [superviewWillDisappear:animated];

     //解除键盘出现通知

        [[NSNotificationCenterdefaultCenter] removeObserver:selfname:UIKeyboardDidShowNotificationobject:nil];

     //解除键盘隐藏通知

        [[NSNotificationCenterdefaultCenter] removeObserver:selfname:UIKeyboardDidHideNotificationobject:nil];

    }

    - (void)dealloc{

     //解除键盘出现通知

        [[NSNotificationCenterdefaultCenter] removeObserver:selfname:UIKeyboardDidShowNotificationobject:nil];

     //解除键盘隐藏通知

        [[NSNotificationCenterdefaultCenter] removeObserver:selfname:UIKeyboardDidHideNotificationobject:nil];

    }

    Step—2:键盘的的种类

    1>UIKeyboardTypeDefault:

    2>UIKeyboardTypeASCIICapable:

    3>UIKeyboardTypeNumbersAndPunctuation:

    4>UIKeyboardTypeURL:

    5>UIKeyboardTypeNumberPad:

    6>UIKeyboardTypePhonePad:

    7>UIKeyboardTypeNamePhonePad:

    8>UIKeyboardTypeEmailAddress:

    9>UIKeyboardTypeDecimalPad:

    10>UIKeyboardTypeTwitter:

    11>UIKeyboardTypeWebSearch:

    12>UIKeyboardTypeAlphabet:

  • 相关阅读:
    进入软件行业的几点建议
    GNN basic--模型通用流程和分类
    技术分享 | app自动化测试(Android)–显式等待机制
    安服-windows&linux日志分析
    [ACTF2020 新生赛]Exec1
    [科研琐事] 安装服务器的二三事
    基于SSH+Html的外汇资产业务交易管理系统设计与实现
    深入探究Spring自动配置原理及SPI机制:实现灵活的插件化开发
    30.【课堂笔记】10月20日卷积神经网络CNN
    make.exe打印出一个变量和修改追加变量的方法
  • 原文地址:https://blog.csdn.net/qq_34491373/article/details/126419752