zoukankan      html  css  js  c++  java
  • 通过监听键盘,实现对UITextView的内容移动

    视图出现时,增加观察

    - (void)viewWillAppear:(BOOL)animated

    {

        // 增加对键盘的监听

        [[NSNotificationCenter defaultCenter] addObserver:self

         

                                                 selector:@selector(keyboardWasShown:)

         

                                                     name:UIKeyboardWillShowNotification object:nil];

        [[NSNotificationCenter defaultCenter] addObserver:self

         

                                                 selector:@selector(keyboardWasHidden:)

         

                                                     name:UIKeyboardWillHideNotification object:nil];

    }

    #pragma mark -- 与键盘监听相关的方法

    - (void)keyboardWasShown:(NSNotification *)notification

    {

        // 获取键盘高度

        CGRect keyBoardFrame  = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];

        CGFloat keyBoardH      = keyBoardFrame.size.height;

        CGFloat y                = keyBoardH - 120 - self.bottomLayout.constant;

     // 通过改变contentInset的heigh来使textView的字可以跟着移动

        self.contentTextView.contentInset   = UIEdgeInsetsMake(0, 0, y, 0);

    }

    // 键盘消失时 重新改回原来的contentInsert

    - (void)keyboardWasHidden:(NSNotification *)notification

    {

        self.contentTextView.contentInset   = UIEdgeInsetsMake(0, 0, 0, 0);

    }

     

    视图消失时,移除观察

    - (void)viewDidDisappear:(BOOL)animated

    {

        [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];

        [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];

        

    }

  • 相关阅读:
    Egret Inspector google 插件 浏览器报错的解决方案:
    egret 项目 支持 es6 解决方案
    promise-abortable
    BaseSocket
    【译】async/await 优点、陷阱以及如何使用 (经验总结)
    WebSocket 断线重连引入心跳的原因
    node js 项目: 采用typescript 编写的好文章
    创建Node.js TypeScript后端项目 demo
    vs code 提高工作效率的办法:
    cocos2d-x 贝塞尔曲线(Bezier)用法详解
  • 原文地址:https://www.cnblogs.com/destiLaugh/p/5821081.html
Copyright © 2011-2022 走看看