[キャンセル] ボタンを常に有効にするために、UISearchBar の rejectFirstResponder メソッドをオーバーライドしようとしています。
@interface UISearchBar(alwaysEnableCancelButton)
- (BOOL)resignFirstResponder;
@end
@implementation UISearchBar(alwaysEnableCancelButton)
- (BOOL)resignFirstResponder
{
// Force the cancel button to stay enabled
UIView *possibleButton;
for (possibleButton in self.subviews)
{
if ([possibleButton isKindOfClass:[UIButton class]])
{
UIButton *cancelButton = (UIButton*)possibleButton;
[cancelButton setEnabled:YES];
}
// Dismiss the keyboard
if ([possibleButton isKindOfClass:[UITextField class]]) {
[(UITextField *)possibleButton resignFirstResponder];
}
}
NSLog(@"done");
return [super resignFirstResponder];
}
@end
しかし、ログには何も表示されません!
みたいに使ってます
[mySearchBar resignFirstResponder];