2014-02-24 42 views
2

UISearchBar委託函數僅對iOS7 iPhone5沒有響應。我的代碼中有兩個.xib文件,用於3.5英寸的屏幕和一個用於4英寸的屏幕。 對於3.5英寸的屏幕,它工作正常,但對於4英寸屏幕,委託功能沒有被調用。 你能指導我嗎?UISearchBar委託函數未響應

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar { 
    [searchBar setShowsCancelButton:YES animated:YES]; 
    [self keyboardWillShow]; 
} 

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar { 
    [self keyboardWillHide]; 
    [email protected]""; 

    [searchBar setShowsCancelButton:NO animated:YES]; 
    [searchBar resignFirstResponder]; 
} 

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar 

該函數被調用,但searchBarCancelButtonClicked不起作用。

+0

如果'searchBarCancelButtonClicked'沒有被調用,你看,如果委託設置好? –

+0

是的代表設置的很好。這就是searchBarTextDidBeginEditing響應的原因。 –

+0

但'searchBarCancelButtonClicked'不叫? –

回答

0

一切都很好。這是我的錯誤。我正在應用覆蓋取消按鈕的覆蓋視圖。我刪除了這個覆蓋層,它工作正常。

+0

那是很好的,你的問題解決了:) – Irfan

+1

努力爲您弟弟@Irfan感謝。 :) Jazak'Allah –

+0

歡迎兄弟:) – Irfan

4

我對你有一些建議:

1)首先檢查出來,對於iPhone5的你的.xib文件連接到的UISearchBar與否的代表?

2)您可以使用一個的.xib文件都只有3.5英寸,4英寸,使這個的.xib爲iPhone 4和5兼容的自動尺寸。

希望這些點能夠解決您的問題。

+0

是它連接。我無法使用Autoresizing,因爲我需要支持iOS4。 –

+0

你做了searchBar.delegate = self;在ViewDidLoad? – Irfan

+0

是的,我嘗試過。並且我已經連接了來自Xib文件的delgate –

0

就像伊爾凡說,這將是因爲你沒有正確連接的代表。檢查你的xib文件的4英寸屏幕。你也可以在一個單獨的xib中做到這一點。只需點擊自動佈局並適當調整每個元素的調整大小約束即可獲得更好的結果。