I have encountered the weirdest display bug with my UISearchBar
.
Here is my code that works perfectly in another app. (I create the search bar in code because a xib file is not feasible.)
searchBar = [[UISearchBar alloc] initWithFrame:
CGRectMake(0, 0, self.tableView.frame.size.width, 44)];
searchBar.delegate = self;
searchController = [[UISearchDisplayController alloc]
initWithSearchBar:searchBar contentsController:self];
searchController.delegate = self;
searchController.searchResultsDataSource = self;
searchController.searchResultsDelegate = self;
self.tableView.tableHeaderView = searchBar;
The search functionality etc. works fine. But strangely, the search bar looks like this, both on the device and the simulator:
searchBar.placeholder
or searchBar.prompt
to @""
or nil
does not remove this "Search" placeholder. (However, asearchBar.placeholder = @"FooBar";
Any help? The most pressing problem is to get the text to over the right.
That behavior can be caused by overriding either (CGRect)editingRectForBounds:(CGRect)bounds
or - (CGRect)textRectForBounds:(CGRect)bounds
. Have you altered either of those in a UITextField
category elsewhere in your app? The purpose of doing that may have been to add padding to a text field (which can instead be accomplished with an invisible leftView
). In this case, your custom "padding" is being applied to the UISearchBar
text field.
Such a category on UITextField
will also cause your app to crash while initializing framework classes that use UITextField
, such as MFMailComposeViewController
, so it is a bad idea for several reasons.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With