You need to enable JavaScript to run this app. 如何移除UISearchBar搜索栏中的放大镜图标
优惠活动
大模型
产品
解决方案
定价
更多

如何移除UISearchBar搜索栏中的放大镜图标

隐藏UISearchBar左侧放大镜图标的正确实现

前期设置无效的核心原因

你之前配置search.showsScopeBar = false无法隐藏放大镜,是因为该属性和放大镜图标没有任何关联:showsScopeBar的作用是控制搜索栏下方分范围选择的标签栏的显示状态,并不是用来调整输入框内组件显隐的,自然达不到你想要的效果。

可直接落地的实现代码

搜索栏的放大镜图标本质是其内部封装的输入框(UITextField)的左侧附属视图,只要将这个左侧视图移除并关闭显示模式,就能实现图标完全隐藏,代码可以直接整合到你现有的初始化逻辑中:

public var searchBar: UISearchBar = {
    let search = UISearchBar()
    search.showsScopeBar = false
    search.barTintColor = .backgroundColor
    search.text = "Selecione ou digite "
    // 新增逻辑:移除输入框左侧的放大镜图标
    if let searchInputField = search.value(forKey: "searchField") as? UITextField {
        searchInputField.leftView = nil
        searchInputField.leftViewMode = .never
    }
    return search
}()

适配提示

  • 上述通过KVC获取searchField的方式是自定义UISearchBar的通用成熟方案,对应API从iOS7开始保持稳定,不会出现跨版本失效的问题
  • 隐藏图标后如果出现文本位置偏移,可以手动调整输入框的左右内边距,让提示文字和搜索栏整体边距保持视觉对齐
  • 注意区分UISearchBar内所有按钮的对应属性:showsBookmarkButton控制右侧书签按钮显隐、showsSearchResultsButton控制右侧搜索结果按钮显隐,二者都和左侧放大镜图标无关

内容的提问来源于stack exchange,提问作者YAGOCOMY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 02:24:05