zyx*_*xel 6 objective-c uisearchbar becomefirstresponder ios
当UIViewController第二次被推送到导航控制器时,为什么UISearchBar没有获得Focus并且键盘没有出现?似乎整个视图中的任何元素都没有焦点.
我的用例:我有2个视图控制器:A和B.转换是A-> B. A,B被推送到导航控制器.
我的代码:在B UIViewController上创建了与搜索栏的IBOutlet连接:
@property (weak, nonatomic) IBOutlet UISearchBar *mySearchBar;
Run Code Online (Sandbox Code Playgroud)
mySearchBar的代表也已设置.我在viewDidAppear方法中将焦点放在B UIViewController中的搜索栏上:
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[self performSelector:@selector(setCorrectFocus) withObject:NULL afterDelay:0.2];
}
-(void) setCorrectFocus {
[self.mySearchBar becomeFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
控制器之间的转换是通过以下代码手动完成的:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"myStoryboard" bundle:nil];
AController *a = [storyboard instantiateViewControllerWithIdentifier:@"A"];
[self.navigationController pushViewController:a animated:NO];
Run Code Online (Sandbox Code Playgroud)
经过长时间的搜索,我发现了错误。在情节提要板中的某个位置,留下了名为 mySearchbar 的 UISearchBar 旧连接。我必须纠正的另一件事是该方法
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar;
Run Code Online (Sandbox Code Playgroud)
返回NO,每次我回到上一个控制器。但YES下次它应该能够将焦点设置在搜索栏上。
| 归档时间: |
|
| 查看次数: |
8591 次 |
| 最近记录: |