我在哪里可以得到UISearchBar中使用的放大镜图标?
我正在使用UITextField
作为UISearchBar
替代品,并用这个疯狂的代码从原始的UISearchBar
“偷取”放大镜图标:
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]; } }
正如你可能猜到的,我不想用我自己的位图。
在Cocoa的某个地方没有更容易获得的放大镜图标吗?
所以,这里是unicode字符的代码:
UILabel *magnifyingGlass = [[UILabel alloc] init]; [magnifyingGlass setText:[[NSString alloc] initWithUTF8String:"\xF0\x9F\x94\x8D"]]; [magnifyingGlass sizeToFit]; [textField setLeftView:magnifyingGlass]; [textField setLeftViewMode:UITextFieldViewModeAlways];
编辑:对于适合iOS 7风格的简单外观,请添加Unicode变体select器\U000025B6
。
我不知道它在Cocoa中的任何标准图像(并且在Unicode中没有任何字符)。
一个图像是Dock包的一部分,但是:
/System/Library/CoreServices/Dock.app/Contents/Resources/ectl_search_magnify.png
由于我不能得到一个简单的unicode放大镜出现,我决定看看一个标准的UISearchBox
使用什么。 事实certificate,这是一个放大镜的图像,我已经提取并包括在下面,虽然这是一个非常简单的形状,这将是微不足道的重现完美。
使用OSX 10.7.5我找不到ectl_search_magnify.png,但是很简单
find /System -ipath '*magni*'
发现:
/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
后两个可能是你想要的(假设你需要一个图像)。