繁体   English   中英

UISearchBar在模拟器上可用,但在设备上不可用

[英]UISearchBar works on simulator but doesn't work on device

我在我的应用程序中使用UISearchBar 当我在模拟器上运行时,一切都很好。 在设备上不起作用。 在设备上,我的搜索栏框架正在更改,但键盘未显示。 NSlog正在运行。 我的代码在这里:

-(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;
    mySearchBar.text=@"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;

我有类似的问题,“ UISearchBar”出现在模拟器中,但没有出现在实际设备中。 我将UISearchBar放在nib文件中时,通过使用NibName调用Constructor来解决了该问题。

[MyUITableViewController initWithNibName:@"MyUITableViewController" bundle:nil];

您是否已将视图设为第一响应者? 这对于显示键盘很有必要。 我不确定为什么它可以在模拟器上运行,但是您应该调用[self becomeFirstResponder]; viewDidLoad方法中启用视图以接收键盘事件,从而显示键盘。 完成后( viewWillDisappear等),只需调用[self resignFirstResponder]; 我认为那是你的问题。 没有更多的解释/代码很难说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM