簡體   English   中英

關閉鍵盤

[英]Dismiss Keyboard

因此,我有一個自己創建的頂部欄控制器,該控件正在其他控制器視圖中實現。 我在頂部欄上有一個文本字段。 我想知道如果用戶在鍵盤外部單擊鼠標,則關閉鍵盤的最佳方法是什么。 我確實有一個執行方法dismisskeyboard的點擊手勢識別器。 但是,這僅在用戶單擊鍵盤外部的頂部欄時才有效。 有沒有一種設置方法,如果用戶單擊屏幕上的任何按鈕,則將關閉鍵盤?

您可以嘗試為文本字段提供一個透明的inputAccessoryView,其大小可以填充屏幕的其余部分,從而可以捕獲水龍頭並關閉鍵盤。

我將描述的方法是一種破解,但仍然有效。

  1. 使用view的框架創建一個透明的UIButton ,如下所示:

     UIButton* overlay = [UIButton buttonWithType:UIButtonTypeCustom]; overlay.frame = self.view.bounds; overlay.backgroundColor = [UIColor clearColor]; [overlay addTarget:self action:@selector(hideOverlay:) forControlEvents:UIControlEventTouchDown]; [self.view.subviews[0] insertSubview:overlay belowSubview:self.textField]; 
  2. 創建方法hideOverlay以關閉鍵盤並隱藏透明hideOverlay

     -(void)hideOverlay:(id)sender { UIView* overlay = sender; [overlay removeFromSuperview]; [self.textField resignFirstResponder]; } 

理想情況下,您應該在UITextFieldDelegate textFieldDidBeginEditing: protocol方法中調用代碼的第一塊,並應相應地注冊您的調用類。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM