我有一个 xCode 项目,其中包含一个带有“搜索栏和搜索显示控制器”的表格视图,以允许用户细化显示项目的列表。一般来说,遵循http://www.raywenderlich.com/16873/how-to-add-search-into-a-table-view中提供的指导。我最近下载了支持 iOS 7 的最新 xCode(版本 5.0 (5A1413)),并一直在不同目标上测试有问题的应用程序。
在 iOS 6 目标(模拟器或真实设备)上运行此应用程序时,它按预期工作,这意味着按下取消按钮会删除搜索栏,按下清除按钮(小灰色 x)会清除所有已输入的搜索条件用户。但是当项目在 iOS 7 目标上运行时,清除和取消按钮都不起作用。
本项目实现了searchBarCancelButtonClicked方法,我验证了目标运行iOS 7时没有调用该方法。
- (void)searchBarCancelButtonClicked:(UISearchBar *)SearchBar
{
NSLog(@"searchBarCancelButtonClicked called");
self.searchBar.text = nil;
…
// Hide Search bar when cancelled
[self hideSeachBar];
[self.searchBar resignFirstResponder];
…
}
我的表视图控制器设置为 UISearchDisplayDelegate 和 UISearchBarDelegate。看起来这仍然有效,因为 searchBar:textDidChange: 在 iOS 6 或 7 目标上被调用。
@interface ItemViewController () <UISearchDisplayDelegate, UISearchBarDelegate>
…
@end
我看不到与此相关的任何其他帖子或任何 iOS 7 更改材料(例如https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/Bars.html#//apple_ref/doc/uid /TP40013174-CH8-SW1),其中提到了支持 iOS7 需要进行的任何重新编码。
对此有什么想法吗?谢谢