2011-11-04 64 views
6

我有一個簡單的視圖控制器,有一個存儲區和一個可用。 我的問題是,當搜索欄被竊聽我看委託功能searchBarShouldBeginEditing被調用,但不searchBarTextDidBeginEditing(因爲該鍵盤的不打開和搜索是不可編輯)UISearch bar not calling searchBarTextDidBeginEditing

我試圖執行委託功能searchBarShouldBeginEditing返回YES,設置搜索欄的第一個響應者,但沒辦法,我得到searchBarTextDidBeginEditing叫...

任何想法可能會發生?

一些代碼:

或者Controller.h

@interface ViewController : UIViewController <UISearchBarDelegate> 
{ 
    UISearchBar * searchbar; 
} 

@property (nonatomic, retain) IBOutlet UISearchBar* searchbar; 

@end 

Controller.m或者

​​

cousrse我班有很多更多的代碼(這無疑是影響莫名其妙搜索欄),但如果有人已經有類似的搜索欄問題,這將是非常apreciated其迴應;)

我tryed做,只有搜索欄簡單的應用程序,顯然它的工作原理...

編輯:

測試一點點我發現它是不是爲我添加了一個文本字段獲得相同與相關的UISearchBar結果(只textFieldShouldStartEditing委託函數被調用)

應用具有中的UITabBar一樣cotroller內的所有視圖控制器,但我不認爲這會導致這一切混亂...

EDITING2:

真是奇怪的行爲:設置IBAction爲功能觸地的UITextField的情況下完美地工作,但設置IBAction爲功能EditingDidBegin永遠不會被解僱......

爲什麼這個事件不能叫?

+0

你可以發佈你的代碼嗎? – Raptor

+0

我在我的搜索條上有相反的行爲。我得到searchBarTextDidBeginEditing,但不searchBarShouldBeginEditing ...也許蘋果在最新的SDK中搞砸了一些東西?你在用什麼SDK? – Mark

+0

對不起,但我還沒有代碼...我認爲我解決了它重新創建整個項目(並且仍然不知道在第一個項目中有什麼令人失望)。 –

回答

13

你是否設置了委託屬性?

searchbar.delegate = self; 
+0

我通過界面構建​​器完成了兩種方法,並且通過代碼(和兩個同時XD)無論如何,我不認爲這是問題,因爲委託函數之一被稱爲(searchBarShouldBeginEditing)。感謝您的答案! –

0

也許你在某個地方打電話[searchbar resignFirstResponder]。我的類似問題就是這種情況。