簡體   English   中英

UITextField的帶有搜索returnkey的resignFirstResponder

[英]resignFirstResponder for UITextField with search returnkey

一個簡單的問題:如果我的“完成”鍵是“搜索”,如何才能退出文本字段。 本質上,如果用戶不想搜索,而是想取消...該怎么辦...

謝謝

您可以使用:SearchBar的取消按鈕,並且需要實現此SearchBar delegate

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    isSearching = NO; //This is a flag which specifies if searching is going on or not.
    searchBar.text = @""; //Clears out search bar text
    [self resetSearch]; //Reset search resets all the flags and variables.
    [self.leadsTable reloadData]; //Reloads the tableView
    [searchBar resignFirstResponder]; //Resigns responder from Search bar
}

如果用戶不想搜索,這是一種辭職響應者的正確方法。

看一下如何在UISearchBar中添加內置的“取消”按鈕。 檢查屬性“ 顯示取消按鈕 ”(紅色箭頭突出顯示)

在此處輸入圖片說明

編輯:

步驟1:有條件地檢查您的textField文本是否為空白? 如果是這樣,請為TextField重新簽名FirstResponder。 您需要委派設置為self為的UITextField使用代碼:

txtField.delegate = self;

或者,您可以通過將TextField的delegate連接到File's Owner從界面構建器中執行相同的操作。

步驟2:您需要實現此委托方法。

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
   if([textField.text isEqualToString:@""])
   {
        [textField resignFirstResponder];
   }
    return YES;
}

編輯1:

現在,用一個標記為“取消”的條形按鈕創建一個UIToolbar

完成此操作后:

您可以為UIToolBar編寫按鈕單擊事件:

-(IBAction)cancelClicked:(id)sender
{
    [txtField resignFirstResponder];
}

完成后,您現在可以編寫:

txtField.inputAccessoryView = toolbarOutlet;

希望這對您有所幫助。

返回按鈕上的文字與討論無關。 您想知道如何在不按返回鍵的情況下辭職第一響應者,並且有幾種方法可以做到這一點。

  1. 使用文本字段的inputAccessoryView在鍵盤上方的工具欄中顯示一個單獨的取消按鈕。
  2. 在字段的超級視圖上使用輕擊手勢識別器,以識別用戶何時在字段外進行點擊,然后調用[self.view endEditing:YES] (其中self是您的視圖控制器)。 這將導致第一響應者辭職。 (這在滾動視圖中非常挑剔。)
  3. 假設您當時在屏幕上有UINavigationBar ,則在編輯時將當前視圖控制器的rightBarButtonItem交換為取消欄按鈕項。 編輯結束后,請換回常規的右欄按鈕項(如果有)。

暫無
暫無

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

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