UISearchBar的自定义InputView在iOS7中不起作用
我需要在UISearchBar中设置我的自定义inputView。
所以我写了下面的代码,这是在iOS5和iOS6完美工作。
但是,它不适用于iOS7。
for(int i =0; i<[self.searchBar.subviews count]; i++) { if([[self.searchBar.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) { [(UITextField*)[searchBar.subviews objectAtIndex:i] setFont:[UIFont fontWithName:@"MyCustomFont" size:15]]; UITextField* search=(UITextField*)[searchBar.subviews objectAtIndex:i]; search.delegate = self; [(UITextField*)[self.searchBar.subviews objectAtIndex:i] setInputView:self.customKeyboard]; [self.customKeyboard setTextView:search]; } } [self.sBar reloadInputViews];
我怎样才能做到这一点?
在iOS7中,searchBar子视图层次结构已被更改,请尝试以下操作:
IOS 7:
NSArray *searchBarSubViews = [[self.searchBar.subviews objectAtIndex:0] subviews];
iOS6之前:
NSArray *searchBarSubViews = self.searchBar.subviews;
尝试下面更新的function:
NSArray *searchBarSubViews = [[self.searchBar.subviews objectAtIndex:0] subviews]; for(int i =0; i<[searchBarSubViews count]; i++) { if([[searchBarSubViews objectAtIndex:i] isKindOfClass:[UITextField class]]) { UITextField* search=(UITextField*)[searchBarSubViews objectAtIndex:i]; [search setFont:[UIFont fontWithName:@"MyCustomFont" size:15]]; search.delegate = self; [search setInputView:self.customKeyboard]; [self.customKeyboard setTextView:search]; } } [self.sBar reloadInputViews];