亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS應用開發中監聽鍵盤事件的代碼實例小結

2020-07-26 03:26:37
字體:
來源:轉載
供稿:網友

1.注冊監聽鍵盤事件的通知

復制代碼 代碼如下:

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillShow:)
                                                 name:UIKeyboardWillShowNotification
                                               object:nil];
   
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardShow:)
                                                 name:UIKeyboardDidShowNotification
                                               object:nil];
   
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardWillHide:)
                                                 name:UIKeyboardWillHideNotification
                                               object:nil];
   
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardHide:)
                                                 name:UIKeyboardDidHideNotification
                                               object:nil];

2.在鍵盤將要出現和隱藏的回調中,加入動畫

復制代碼 代碼如下:

- (void)keyboardWillShow:(NSNotification *)notif {
    if (self.hidden == YES) {
        return;
    }
   
    CGRect rect = [[notif.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGFloat y = rect.origin.y;
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.25];
    NSArray *subviews = [self subviews];
    for (UIView *sub in subviews) {
       
        CGFloat maxY = CGRectGetMaxY(sub.frame);
        if (maxY > y - 2) {
            sub.center = CGPointMake(CGRectGetWidth(self.frame)/2.0, sub.center.y - maxY + y - 2);
        }
    }
    [UIView commitAnimations];
}

- (void)keyboardShow:(NSNotification *)notif {
    if (self.hidden == YES) {
        return;
    }
}

- (void)keyboardWillHide:(NSNotification *)notif {
    if (self.hidden == YES) {
        return;
    }
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.25];
    NSArray *subviews = [self subviews];
    for (UIView *sub in subviews) {
        if (sub.center.y < CGRectGetHeight(self.frame)/2.0) {
            sub.center = CGPointMake(CGRectGetWidth(self.frame)/2.0, CGRectGetHeight(self.frame)/2.0);
        }
    }
    [UIView commitAnimations];
}

- (void)keyboardHide:(NSNotification *)notif {
    if (self.hidden == YES) {
        return;
    }
}

3.監聽鍵盤刪除鍵之非代理實現
在UITextField 和 UITextView ,如何監聽到刪除鍵。

我看到網上都是用代理監聽的,我覺得不靠譜。

其實蘋果已經寫的很清楚了。

就在他們實現的協議里面~~

復制代碼 代碼如下:

NS_CLASS_AVAILABLE_IOS(2_0) @interface UITextView : UIScrollView<UITextInput>
@protocol UITextInput<UIKeyInput>
@protocol UIKeyInput <UITextInputTraits>

- (BOOL)hasText;

- (void)insertText:(NSString *)text;

- (void)deleteBackward;

@end


寫的非常清楚,一看就明白。

-deleteBackward 這個方法就是刪除按鈕監聽。

只要自己寫個子類,重寫此方法就能監聽。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
这里只有精品在线观看| 亚洲天堂影视av| 国产精品成人在线| 亚洲成人网在线| 日韩精品在线观看一区| 国产一区二区三区在线看| 亚洲国产精品国自产拍av秋霞| 色偷偷888欧美精品久久久| 欧美一区在线直播| 亚洲视频在线免费看| 欧美激情欧美激情在线五月| 91夜夜揉人人捏人人添红杏| 国产精品自产拍在线观看| 久久这里有精品视频| 亚洲精品电影在线观看| 国产91精品黑色丝袜高跟鞋| 国产成人精品日本亚洲专区61| 国产精品精品久久久久久| 欧美裸身视频免费观看| 69影院欧美专区视频| 日韩在线观看免费高清完整版| 国产精品日韩电影| 精品福利免费观看| 疯狂欧美牲乱大交777| 福利视频第一区| 国产亚洲日本欧美韩国| 亚洲天堂男人天堂女人天堂| 久久91亚洲精品中文字幕奶水| 国产成人黄色av| 国产精品第七影院| 在线观看不卡av| 欧美日韩亚洲天堂| 91精品视频在线播放| 国产深夜精品福利| 亚洲美女av黄| 成人免费在线网址| 欧美视频免费在线观看| 久久久久久国产精品| 韩国一区二区电影| 91精品在线播放| 国产精品入口免费视| 日韩福利视频在线观看| 丰满岳妇乱一区二区三区| 欧美—级a级欧美特级ar全黄| 欧美在线性爱视频| 日本韩国在线不卡| 伊人一区二区三区久久精品| 2018中文字幕一区二区三区| 尤物精品国产第一福利三区| 国产精品毛片a∨一区二区三区|国| 成年人精品视频| 亚洲国产精品电影在线观看| 亚洲国产精品美女| 亚洲精品丝袜日韩| 欧美性生活大片免费观看网址| 日韩av在线精品| 亚洲免费电影在线观看| 亚洲人精选亚洲人成在线| 国产精品永久免费在线| 在线日韩精品视频| 欧美另类极品videosbestfree| 国产精品成人一区二区三区吃奶| 国产综合色香蕉精品| 亚洲欧美在线看| 国产精品人人做人人爽| 日韩国产精品一区| 国产精品福利久久久| 97在线免费观看| 亚洲天堂免费视频| 欧美黄色片免费观看| 6080yy精品一区二区三区| 26uuu久久噜噜噜噜| 精品久久久久久久久久久| 日韩亚洲精品电影| 久久99精品久久久久久噜噜| 久久精品99无色码中文字幕| 91成人在线视频| 亚洲美腿欧美激情另类| 国产精品自拍偷拍| 91精品国产一区| 国产成人精品一区二区在线| 国产欧美日韩免费| 久久久久亚洲精品成人网小说| 中文字幕日韩欧美在线| 亚洲精品国产综合久久| 理论片在线不卡免费观看| 久久精品人人做人人爽| 亚洲日本中文字幕免费在线不卡| 精品无码久久久久久国产| 亚洲激情中文字幕| 国产一区二区三区在线免费观看| 91精品国产乱码久久久久久久久| 亚洲无限av看| 亚洲美女动态图120秒| 精品人伦一区二区三区蜜桃网站| 亚洲va久久久噜噜噜| 国产午夜精品一区理论片飘花| 98精品国产自产在线观看| 日韩中文字幕免费看| 精品毛片网大全| 91免费综合在线| 色香阁99久久精品久久久| 亚洲国产成人久久| 亚洲国产成人精品久久| 国产成人精品一区二区三区| 亚洲精品中文字| 日韩极品精品视频免费观看| 欧美精品videos另类日本| 激情成人中文字幕| 午夜精品久久久99热福利| 国产婷婷97碰碰久久人人蜜臀| 色综合天天狠天天透天天伊人| 久久成人这里只有精品| 久久频这里精品99香蕉| 国产一级揄自揄精品视频| 欧美午夜激情视频| 亚洲第一福利视频| 91精品久久久久久久久久另类| 欧美激情综合色综合啪啪五月| 色偷偷9999www| 456国产精品| 国产成人鲁鲁免费视频a| 久久久人成影片一区二区三区观看| 国产精品福利小视频| 久久免费成人精品视频| 欧美性猛交xxxx免费看漫画| 日韩欧美国产免费播放| 91精品久久久久久久久青青| 日本亚洲欧美成人| 久热精品视频在线观看| 亚洲国产欧美一区二区三区久久| 精品久久久久久亚洲国产300| 国产成人在线一区| 日韩电影在线观看中文字幕| 欧美成人精品三级在线观看| 国内免费精品永久在线视频| 国产精品欧美亚洲777777| 国产一区欧美二区三区| xxxx欧美18另类的高清| 国产精品揄拍500视频| 岛国av午夜精品| 欧美高清电影在线看| 久色乳综合思思在线视频| 91精品久久久久久久久中文字幕| 久久久久久伊人| 国产一区二区在线播放| 日本成人激情视频| 97人人模人人爽人人喊中文字| 狠狠色狠狠色综合日日五| 日韩电影在线观看免费| 久久久亚洲精选| 福利微拍一区二区| 亚洲激情久久久| 欧美在线中文字幕| 国内成人精品视频| 91精品国产综合久久久久久久久| 欧美午夜电影在线| 国产免费一区二区三区香蕉精| 精品日韩中文字幕| 亚洲毛茸茸少妇高潮呻吟| 国产成人一区二区| 国产精品美女无圣光视频| 一区二区三区亚洲| 欧美精品久久久久久久|