Rudolf Adamkovič
Rudolf Adamkovič

Reputation: 31486

Where can I get the magnifying glass icon used in UISearchBar?

I'm using UITextField as a UISearchBar replacement and "stealing" the magnifying glass icon from the original UISearchBar with this crazy code:

    UISearchBar *originalSearchBar = [[UISearchBar alloc] init];
    for (UIView *searchBarSubview in [originalSearchBar subviews]) {
        if([searchBarSubview isKindOfClass:[UITextField class]]) {
            UITextField *textField = (UITextField *)searchBarSubview;
            [_textField setLeftView:[textField leftView]];
            [_textField setLeftViewMode:UITextFieldViewModeAlways];
        }
    }

As you've probably guessed, I don't want to use my own bitmap.

Isn't there an easier accessible magnifying glass icon somewhere in Cocoa?

Upvotes: 7

Views: 12243

Answers (4)

Robert
Robert

Reputation: 5869

As I couldn't get a plain unicode magnifying glass to appear, I decided to see what a standard UISearchBox uses. It turns out it's an image of a magnifying glass, which I've extracted and included below, though it's a very simple shape which would be trivial to reproduce perfectly.

2x Search 3x Search

Upvotes: 2

Rudolf Adamkovič
Rudolf Adamkovič

Reputation: 31486

So, here's the code with the unicode character:

    UILabel *magnifyingGlass = [[UILabel alloc] init];
    [magnifyingGlass setText:[[NSString alloc] initWithUTF8String:"\xF0\x9F\x94\x8D"]];
    [magnifyingGlass sizeToFit];

    [textField setLeftView:magnifyingGlass];
    [textField setLeftViewMode:UITextFieldViewModeAlways];

Edit: For plain look that fits iOS 7 style, add Unicode variation selector \U000025B6.

Upvotes: 26

Ehren
Ehren

Reputation: 523

Using OSX 10.7.5 I couldn't find the ectl_search_magnify.png but a simple

find /System -ipath '*magni*'

found:

/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/MagnifyingGlassIcon.icns
/System/Library/PrivateFrameworks/ProKit.framework/Versions/A/Resources/LionPanels.bundle/Contents/Resources/Dark_NSSmallMagnifyingGlass.tiff
/System/Library/PrivateFrameworks/ProKit.framework/Versions/A/Resources/LionPanels.bundle/Contents/Resources/Night_NSSmallMagnifyingGlass.tiff

The latter two are probably what you want (assuming you need an image).

Upvotes: 0

Kevin Grant
Kevin Grant

Reputation: 5431

I don't know of any standard image for it in Cocoa (and there is no character for it in Unicode either).

An image for this is part of the Dock bundle, however:

/System/Library/CoreServices/Dock.app/Contents/Resources/ectl_search_magnify.png

Upvotes: 3

Related Questions