iOS 如何解決無法將鍵盤隱藏

來源:互聯網
上載者:User

標籤:style   io   os   使用   ar   sp   問題   on   line   

問題:

在一個父視圖上添加了UITableView以及一個UITextView(UITextView為底部,其餘為UITableView的布局)。當點擊UITextView的時候,響應正常。當結束寫入的時候,需要調用[UITextView resignFirstResponder]來隱藏鍵盤。這就導致,無法收合鍵盤。

原因:

當點擊UITableView的時候,所觸發非UITextView的時候,也就是觸摸的是UITableView。當手指touch的時候,響應鏈便開始從視圖的頂部往下響應。當它到達UITableView的時候,UItableView是繼承UIScrollewView的,所以,這個訊號被UITableView所響應,也就是執行了UITableView的touch方法。所以,UITextView就無法響應。

解決辦法:

給UITableView做擴充,讓其過濾第一次響應:

@implementation UITableView (UITouch)- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    [[self nextResponder] touchesBegan:touches withEvent:event];    [super touchesEnded:touches withEvent:event];}- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {    [[self nextResponder] touchesMoved:touches withEvent:event];    [super touchesEnded:touches withEvent:event];    }- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {    [[self nextResponder] touchesEnded:touches withEvent:event];    [super touchesEnded:touches withEvent:event];}@end

在需要的地方,匯入這個。

在該類中調用,並判斷是不是這個UITableView,如果不是,那就可以收合鍵盤了。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    [super touchesBegan:touches withEvent:event];    UITableView *teableView = (UITableView *)[touches anyObject];    if (teableView != self.tableView) {        [textView resignFirstResponder];    }}

=============================================

還有一種方法,不太建議使用。

也就是在鍵盤彈起的時候,在最上層放一個可點擊的View,即可。



iOS 如何解決無法將鍵盤隱藏

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.