2016-05-12 38 views
3

我有一個添加了搜索欄的簡單TableView。一切工作正常,除了當視圖出現時(它是應用程序中的第一個視圖),搜索欄會聚焦(或顯示如此),以便顯示「取消」按鈕(請參見圖像)。 我試過設置tableview作爲第一響應者,在搜索控制器上調用resignFirstResponder等。 如果你點擊搜索欄,然後點擊取消,焦點被刪除,一切都很好 - 「取消」按鈕消失。 關於這是爲什麼,以及如何顯示不重點的搜索欄的任何想法?加載視圖時從搜索控制器中移除焦點

App view as it first appears when app is loaded

+0

你可以發佈你的代碼,以便我們可以幫助你。 – Madhu

+0

在'viewdidload'設置'searchBar.setShowsCancelButton = false'.當搜索欄開始編輯設置'searchBar.setShowsCancelButton = true'並且當編輯結束時設置爲'searchBar.setShowsCancelButton = false' – Sudhir

+0

檢查此細節http:// stackoverflow .com/questions/13028665/how-to-show-cancel-button-searchbar – Sudhir

回答

0

基於該圖像,文本框你是不是第一個響應者,你只是不希望看到的取消按鈕

可以設置searchBar.setShowsCancelButton = false

或情節串連圖板,取消Shows Cancel Button

enter image description here

then if要顯示在編輯過程中取消按鈕,檢查UISearchBarDelegate方法:

FUNC searchBarTextDidBeginEditing

,並設置searchBar.setShowsCancelButton = true

FUNC searchBarCancelButtonClicked

,並設置searchBar.setShowsCancelButton = false

+0

謝謝,這與Sudhir告訴我的相似。請看我對他的回覆。其實,我不認爲搜索欄是第一個響應者,因爲在viewDidLoad上退出第一個響應者不會改變任何東西... –

+0

根據您的圖片,它不是。取消按鈕現在被刪除了嗎?你現在的問題是什麼? – Ted

+0

泰德, 對不起,如果我不清楚。現在的情況如下:當應用第一次啓動時,視圖與我發佈的截圖一樣。在viewDidLoad中爲搜索欄添加resignFirstResponder不會改變這一點。 現在,如果用戶點擊搜索欄,它將變爲活動狀態,用戶可以使用顯示的取消按鈕進行搜索。如果用戶點擊取消按鈕,則取消搜索,取消按鈕消失,搜索欄返回到最大寬度 - 正如應用程序啓動時一樣。 所以,我唯一的問題是啓動 - 爲什麼取消按鈕? –

0

添加searchBar.resignFirstResponder() in viewDidLoad()方法。

- 祝好運。

+0

對不起,沒有工作。這顯然不是第一響應者。 –

相關問題