ヘッダーをざっと見てみると、達成しようとしているのは、UISearchBar の使用目的ではないようです。必要なものを正確に取得するには、おそらくすべての検索トリミングを行わずに、通常のテキスト フィールドで作業する必要があります。
そうは言っても、私はほとんどうまくいくハックを持っています。使用していないときは、検索バーにダミー文字列を入力します。最初の文字を入力すると、検索ボタンが無効になる瞬間があります。しかし、ほとんどの場合、必要なものが得られます。
NSString *kDummyString = @" ";
@implementation CDViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
self.searchBar.text = kDummyString;
}
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if (searchText.length < 1) {
searchBar.text = kDummyString;
}
}
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
BOOL isPreviousTextDummyString = [searchBar.text isEqualToString:kDummyString];
BOOL isNewTextDummyString = [text isEqualToString:kDummyString];
if (isPreviousTextDummyString && !isNewTextDummyString && text.length > 0) {
searchBar.text = @"";
}
return YES;
}
@end