我在一个关于UISearchBar的应用程序中有一个错误。
使用代码:
int width = 250;
searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(768 - width - indent, companySelectionButton.frame.origin.y + (companySelectionButton.frame.size.height - 44)/2, width, 44)];
[searchBar setAutoresizingMask: UIViewAutoresizingFlexibleLeftMargin];
[searchBar setPlaceholder:[Globals localisedString:@"Search by Code or Name"]];
[searchBar setAutocorrectionType:UITextAutocorrectionTypeNo];
[searchBar setDelegate:self];
[self.view addSubview:searchBar];
[searchBar release];
[[searchBar.subviews objectAtIndex:0] removeFromSuperview];
搜索栏在两个方向上都处于我想要的位置,但它不会响应横向拍摄并成为第一响应者/显示键盘。
我已经尝试评论以下几行,看它是否有帮助,但它没有解决它:
[searchBar setAutoresizingMask: UIViewAutoresizingFlexibleLeftMargin];
[[searchBar.subviews objectAtIndex:0] removeFromSuperview];
其他人有类似的问题吗?
提前致谢:)
修改 的
评论出[searchBar setDelegate:nil];搜索栏能够成为所有方向的第一响应者。但当然我需要一个代表才能使用搜索栏!有任何想法吗???会不会继续玩,也许我会错过一些委托方法?
答案 0 :(得分:1)
在willRotateToInterfaceOrientation中重新绘制搜索栏的框架可以解决问题。
答案 1 :(得分:0)
对不起大家,我发现我在searchBarTextDidBeginEditing委托方法中意外地做了一些奇怪的事情,如果设备处于横向状态,该方法将搜索栏重新作为第一响应者。
这个问题对任何人都没用,我应该删除吗?