iOS 鍵盤監(jiān)聽的相關(guān)操作

最近頻繁對(duì)鍵盤的遮擋問題進(jìn)行處理,相信所有人都會(huì)頻繁的與鍵盤打交道。于是我在這里把相關(guān)的一些操作進(jìn)行了封裝,多少能減少一些代碼量。

很簡(jiǎn)單的東西,但是多少能幫助到一些朋友

先放上Github地址:https://github.com/superxlx/KeyBoardDemo

從Github上下載以后你可以找到兩個(gè)文件XKeyBoard.hXKeyBoard.m,這兩個(gè)文件就是我封裝后的文件,將這兩個(gè)文件拖入你的工程。在需要對(duì)鍵盤監(jiān)聽的controller的文件進(jìn)行一下操作:

引入頭文件

#import "XKeyBoard.h"

繼承協(xié)議KeyBoardDlegate,這個(gè)協(xié)議需要實(shí)現(xiàn)兩個(gè)方法:
<pre><code>
/ - (void)keyboardWillShowNotification:(NSNotification *)notification;
/ - (void)keyboardWillHideNotification:(NSNotification *)notification;
</code></pre>
這兩個(gè)方法將分別在鍵盤出現(xiàn)和消失的時(shí)候調(diào)用,但是目前為止你還需要做最后一步:

viewdidload方法中加入以下代碼

<pre><code>
[XKeyBoard registerKeyBoardShow:self];
[XKeyBoard registerKeyBoardHide:self];
</code></pre>
上面的兩行代碼分別對(duì)鍵盤的出現(xiàn)和消失監(jiān)聽進(jìn)行了注冊(cè)。

好的現(xiàn)在運(yùn)行你的程序吧,在鍵盤出現(xiàn)和消失的時(shí)候是不是調(diào)用了 相關(guān)方法。

XKayBoard還提供了一些其他的有關(guān)鍵盤的屬性:
<pre><code>
/**

  • 注冊(cè)鍵盤出現(xiàn)
  • @param target 目標(biāo)(self)
    */
  • (void)registerKeyBoardShow:(id)target;
    /**
  • 注冊(cè)鍵盤隱藏
  • @param target 目標(biāo)(self)
    */
  • (void)registerKeyBoardHide:(id)target;
    /**
  • @return 返回鍵盤,包括高度、寬度
    */
  • (CGRect)returnKeyBoardWindow:(NSNotification )notification;
    /
    *
  • @return 返回鍵盤上拉動(dòng)畫持續(xù)時(shí)間
    */
  • (double)returnKeyBoardDuration:(NSNotification )notification;
    /
    *
  • @return 返回鍵盤上拉,下拉動(dòng)畫曲線
    */
  • (UIViewAnimationCurve)returnKeyBoardAnimationCurve:(NSNotification *)notification;
    </code></pre>

利用以上屬性就可以在鍵盤出現(xiàn)和消失所調(diào)用的函數(shù)中進(jìn)行相關(guān)操作,比如我是這樣做的:
<pre><code>

  • (void)keyboardWillShowNotification:(NSNotification *)notification
    {

    CGRect keyboardEndFrameWindow = [XKeyBoard returnKeyBoardWindow:notification];

    double keyboardTransitionDuration = [XKeyBoard returnKeyBoardDuration:notification];

    UIViewAnimationCurve keyboardTransitionAnimationCurve = [XKeyBoard returnKeyBoardAnimationCurve:notification];

    [UIView animateWithDuration:keyboardTransitionDuration
    delay:0
    options:(UIViewAnimationOptions)keyboardTransitionAnimationCurve << 16
    animations:^{
    CGFloat y =self.view.bounds.size.height - 50;
    CGRect frame = CGRectMake(0, y, 320, 50);
    frame.origin.y -= keyboardEndFrameWindow.size.height;
    self.testview.frame = frame;
    } completion:nil];

}

  • (void)keyboardWillHideNotification:(NSNotification *)notification
    {
    CGRect keyboardEndFrameWindow = [XKeyBoard returnKeyBoardWindow:notification];

    double keyboardTransitionDuration = [XKeyBoard returnKeyBoardDuration:notification];

    UIViewAnimationCurve keyboardTransitionAnimationCurve = [XKeyBoard returnKeyBoardAnimationCurve:notification];

    [UIView animateWithDuration:keyboardTransitionDuration
    delay:0
    options:(UIViewAnimationOptions)keyboardTransitionAnimationCurve << 16
    animations:^{
    CGPoint cen = self.testview.center;
    cen.y += keyboardEndFrameWindow.size.height;
    self.testview.center = cen;

                   } completion:nil];
    

}
</code></pre>

我利用XKeyBoard使鍵盤出現(xiàn)的時(shí)候最下方的UIView上移,消失的時(shí)候這個(gè)UIView有挪回屏幕的最下方,這樣的做法通常在QQ的說說評(píng)論之類的功能等地方會(huì)用到。

這的確是一個(gè)小巧的工具,但也確實(shí)在一些情況下 節(jié)省了我們一些時(shí)間。

如果覺得有用的話,可以在Github上點(diǎn)擊一下Star哦,同時(shí)關(guān)注本人。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,030評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,296評(píng)論 4 61
  • 詩(shī)人姑娘 姑娘喜歡詩(shī),情人一般的熱愛。最美的姑娘喜歡詩(shī)歌,喜歡詩(shī)歌像她喜歡的花花草草,樹木石頭一樣,大山里,小小河...
    南溪向南北歌流海閱讀 364評(píng)論 4 2
  • 讀的什么書:這樣讀書就夠了 閱讀有效時(shí)間:45分鐘 閱讀中遇到了什么困難:第六章中提到書大致分為四類,作者介...
    燁lam閱讀 232評(píng)論 0 0
  • 我叫三花,名字是她給我起的。因?yàn)槲疑砩嫌泻凇?、黃三種顏色,所以叫三花。 沒遇到她之前我沒有名字,...
    謎路麋鹿閱讀 436評(píng)論 1 1

友情鏈接更多精彩內(nèi)容