2012-02-22 165 views
0

我在我的應用中使用了UISearchBar。當我在模擬器上運行時,一切都很好。在設備上不起作用。在設備上,我的搜索欄框架正在改變,但keybord未顯示。 NSlog s正在工作。我的代碼是在這裏:UISearchBar在模擬器上工作,但不能在設備上工作

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { 

    NSLog(@"wrote"); 
} 

-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 

    [self.mySearchBar setFrame:CGRectMake(0,100,mySearchBar.frame.size.width,mySearchBar.frame.size.height)]; 
    mySearchBar.showsCancelButton=TRUE; 
    [email protected]"nowwrite"; 
    NSLog(@"chosed");  
} 

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar { 

    NSLog(@"cancel"); 
} 

- (void)viewDidLoad 
{ 
    mySearchBar.delegate=self; 
    [super viewDidLoad]; 
} 

和我的.h文件

@interface sehirRehberi : UIViewController <UISearchBarDelegate,MKMapViewDelegate,CLLocationManagerDelegate,UINavigationControllerDelegate> { 
    IBOutlet UISearchBar *mySearchBar; 
} 

@property(retain, nonatomic) UISearchBar *mySearchBar; 
+0

很難理解正在發生什麼。嘗試編輯您的問題並添加日誌錯誤。謝謝。 – 2012-02-22 22:21:33

+0

我還沒有錯誤日誌。因爲我沒有錯誤。一切似乎都沒問題。但uisearchbar不工作。我的nslogs工作,但keybord沒有看到 – ali10 2012-02-22 22:54:57

+0

對不起,我在想一個錯誤。這很奇怪。附:類名通常以大寫字母開頭。 – 2012-02-22 23:01:37

回答

0

是否已進行了視圖急救員?這是鍵盤顯示所必需的。我不確定它爲什麼在模擬器上工作,但您應該在viewDidLoad方法中調用[self becomeFirstResponder];以使視圖接收鍵盤事件並顯示鍵盤。完成後(viewWillDisappear等),只需撥打[self resignFirstResponder];即可。我認爲這是你的問題。沒有更多的解釋/代碼很難說清楚。

+0

我在點擊的方法中調用了becomefirstresponder:就像這樣clickShouldBeganTextEdit。這是錯的嗎? (sory,我現在不在我的電腦上) – ali10 2012-02-23 12:29:48

+0

是的,當viewDidLoad或者viewDidAppear是應該使它工作的時候調用它。 – 2012-02-23 20:43:20

+0

身份證沒有工作Dylan – ali10 2012-02-23 22:08:42

0

我有類似的問題,'UISearchBar'出現在模擬器中,但沒有在實際的設備中。我通過調用帶有NibName的構造函數解決了這個問題,因爲我將UISearchBar放置在nib文件中。

[MyUITableViewController initWithNibName:@"MyUITableViewController" bundle:nil]; 
相關問題