簡體   English   中英

從屏幕上刪除鍵盤而不調用resignFirstResponder

[英]removing keyboard from Screen without calling resignFirstResponder

我在UIWindow上添加了一個自定義視圖( NotifyView ),帶有一個關閉按鈕(從UIWindow中刪除它)。 當PUSH通知進入didReceiveRemoteNotification時會添加此視圖,有幾種情況我可以在任何屏幕上,並且我的鍵盤通過UITextfield / UITextview 在此階段,如果推NotifyView則會在鍵盤后面的UIWindow上添加NotifyView 一旦收到PUSH,我想重新簽名鍵盤,所以我可以:

  • 使用NSNotificaitonCenter發布通知以重新firstResponder所有文本字段/ firstResponder (如果有人是firstResponder )。 為此,我必須保持活動指針指向所有控制器中當前活動的textfield / textview。

  • 在AppDelegate中創建一個變量,並為其和PUSH分配活動的文本域/ resignFirstResponder ,並在PUSH上為resignFirstResponder

這兩個解決方案都需要更改所有控制器的代碼,我正在尋找更通用的東西,如:

  • 有什么方法我可以通過接收PUSH簡單地從屏幕上刪除鍵盤
  • 或者我可以獲取應用程序的當前firstResponder並明確地重新簽名。

這些可能是通用解決方案。

如果有人可以促進這個思考過程,或者有人對此案例有任何直接的解決方案,那將是非常有幫助的。

您可以使用以下方法

[[[UIApplication sharedApplication] keyWindow] endEditing:YES]

嘗試這個,對我來說它工作正常[yourView endEditing:YES]

問題是,當你想要回饋焦點時。

我已經實現了監聽每個文本字段和緩存,這是最新的。 只有那個(在推送中)在該恢復狀態之后才辭職,需要專注於此。

在委托方法中嘗試這個...

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
  [self.view endEditing:YES]; // added this in for case when keyboard was already on screen
  [self editStartDate:textField];
  return NO;
}

暫無
暫無

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

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