Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding button to left of UISearchBar

I am tearing my hair out on this one. My client wants to add a button to the left of a search bar like the example below:

alt text
(source: erik.co.uk)

But I just can't figure out how to do it. Apple don't seem to provide any documented method for adding custom buttons to a UISearchBar, let alone to the left of the search bar.

I've tried hacking around in Interface Builder adding a UIToolbar with a button in it to the left but I cannot find any combination of styles where the two line up properly to give the impression that they are one. There is always what looks like one pixel difference in the vertical alignment as you can see from the picture below:

alt text
(source: erik.co.uk)

I've searched around and just can't find the answer, but as we can see from the screenshot it must be possible!

Thank you in advance for your help.

Erik

like image 818
Erik Carlson Avatar asked Aug 14 '10 08:08

Erik Carlson


Video Answer


2 Answers

Use a navigation bar instead of a toolbar. Set the search bar to the navigation bar's title view.

In Interface Builder:

screenshot 1

Result:

screenshot 2

like image 78
kennytm Avatar answered Sep 21 '22 07:09

kennytm


You can replace the Bookmark image instead, and adjust its offset if necessary.
For example:

[self.searchDisplayController.searchBar setImage:[UIImage imageNamed:@"plus2"] forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal]; [self.searchDisplayController.searchBar setPositionAdjustment:UIOffsetMake(-10, 0) forSearchBarIcon:UISearchBarIconBookmark]; 

Handle the button event in the delegate method:

- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar

This is how it looks:

white tinted UISearchBar with custom bookmark image

like image 36
Yariv Nissim Avatar answered Sep 24 '22 07:09

Yariv Nissim