2012-02-22 7 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

Трудно понять, что происходит. Попробуйте изменить свой вопрос и добавить ошибки журнала. Спасибо. –

+0

i havent log log. потому что у меня нет ошибки. все выглядит нормально. но uisearchbar не работает. мои nslogs работают, но keybord не видел – ali10

+0

Извините, я думал об ошибке. Это довольно странно. Постскриптум Названия классов обычно начинаются с прописной буквы. –

ответ

0

Вы сделали вид первый ответчик? Это необходимо для показа клавиатуры. Я не уверен, почему он работает на симуляторе, но вы должны позвонить [self becomeFirstResponder]; в свой метод viewDidLoad, чтобы включить просмотр событий на клавиатуре и, таким образом, отобразить клавиатуру. Когда вы закончите (viewWillDisappear и т. Д.), Просто позвоните [self resignFirstResponder];. Я думаю, это твоя проблема. Трудно сказать без объяснения/кода.

+0

Я назвал startfirstresponder одним щелчком: как этот щелкнулShouldBeganTextEdit. это неправильно? я должен вызвать его в viewdidload? (Sory я сейчас не на своем компьютере) – ali10

+0

Да, называя его, когда 'viewDidLoad' или когда' viewDidAppear' - это то, что должно заставить его работать. –

+0

id did not work Dylan – ali10

0

У меня была аналогичная проблема: «UISearchBar» появился в Simulator, но не на самом устройстве. Я исправил проблему, вызвав конструктор с именем NibName, когда я поместил UISearchBar в файл nib.

[MyUITableViewController initWithNibName:@"MyUITableViewController" bundle:nil]; 
Смежные вопросы