UISearchBar显示错误:文本太左,与放大镜图标重叠

2024-03-27

我遇到了最奇怪的显示错误UISearchBar.
这是我的代码,在另一个应用程序中完美运行。 (我在代码中创建搜索栏,因为 xib 文件不可行。)

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;

搜索功能等工作正常。但奇怪的是,搜索栏在设备和模拟器上看起来都是这样的:

  • 占位符字符串不应该出现在那里,而应该位于右侧。
  • 当我输入搜索文本时,它也从太左开始,放大镜图标显示出来。
  • 另外,设置searchBar.placeholder or searchBar.prompt to @"" or nil不会删除此“搜索”占位符。 (然而,一个
    searchBar.placeholder = @"FooBar";
    将显示“FooBar”,但位置仍然错误。
  • 最后,我发现奇怪的是,尽管我已将语言设置为其他语言(例如德语),但该字符串是“Search”。

有什么帮助吗?最紧迫的问题是让文本位于右侧。


该行为可能是由覆盖任一引起的(CGRect)editingRectForBounds:(CGRect)bounds or - (CGRect)textRectForBounds:(CGRect)bounds。您是否更改了其中的任何一个UITextField您的应用程序中其他地方的类别?这样做的目的可能是向文本字段添加填充(这可以通过不可见的方法来完成)leftView)。在这种情况下,您的自定义“填充”将应用于UISearchBar文本域。

这样的一个类别在UITextField还会导致您的应用程序在初始化使用的框架类时崩溃UITextField, 例如MFMailComposeViewController,因此出于多种原因,这是一个坏主意。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UISearchBar显示错误:文本太左,与放大镜图标重叠 的相关文章

随机推荐

  • 在 SQL Server 中将 COALESCE (或类似的东西)与 GROUP BY 一起使用

    我认为我缺少一些关于如何有效使用 GROUP BY 消除冗余记录的基本知识 我不断遇到似乎需要使用 COALESCE 的地方 但据我所知 这不适用于 GROUP BY 示例 我有一个表 其中包含访问 ID 和访问帐单代码的每种组合以及其他有
  • 使用 Cobertura 和 Jacoco 运行代码覆盖率

    我在获取 Maven 插件项目 使用调用程序插件进行集成测试 的 Sonar 中的集成测试和单元测试的代码覆盖率报告时遇到了一些问题 我无法使用默认的 Jacoco 覆盖率工具进行单元测试 因为这些工具使用 Powermock 这会导致使用
  • 如何制作逆序的for循环?

    编者注 这个问题是在 Rust 1 0 发布之前提出的 引入了 范围 运算符 该问题的代码不再代表当前的风格 但下面的一些答案使用了适用于 Rust 1 0 及更高版本的代码 我当时正在玩Rust 示例网站 https rustbyexam
  • 在 DOS/Batch 中,08 小于 1,但 07 大于 1。为什么?

    在 DOS 批处理中 if 08 lss 1 echo true 与 真 相呼应 09也是如此 08和09都小于1 However if 07 lss 1 echo true 不回显任何内容 01至07不小于1 为什么 08年和09年有什么
  • WebGL 绘制图像

    我是 WebGL 新手 之前在 Java 中使用过 OpenGL 我一直在尝试编写一个简单的函数 该函数以特定的大小和旋转在特定位置绘制图像 但在网上搜索了一段时间后 我的代码仍然无法运行 目前 我已经成功绘制了图像 但是该图像距离正确的位
  • 如何监听Hyperledger Fabric中的事件(commit事件)?

    我们建立了一个结构服务器 并将一些事务放入其中 我们有一些应用程序将与结构服务器配合 这是一个情况 应用程序发送交易fabric sdk java or fabric sdk node 面料执行chaincode 结构通知应用程序结果 应用
  • python中函数的精确计时

    我正在 Windows 上用 python 编程 希望准确测量函数运行所需的时间 我编写了一个函数 time it 它接受另一个函数 运行它 并返回运行所花费的时间 def time it f args start time clock f
  • ORA-02270: 此列列表没有匹配的唯一键或主键

    我有一张表 结构是 CREATE TABLE COURSE ACCREDITED COURSE ID VARCHAR2 50 NOT NULL ENABLE ACCREDITATION BODY ID VARCHAR2 50 NOT NUL
  • 如何覆盖 Material-ui 的选项卡选择颜色?

    我正在使用 Materialui tabs 主题构建 React 16 13 0 应用程序 https material ui com api tab https material ui com api tab 我在我的组件中创建了这些样式
  • 张量流是否通过pdf传播梯度

    可以说 分布函数定义如下 dist tf contrib distributions Normal mu sigma 并从分布中抽取样本 val dist pdf x 并且该值在模型中用于预测变量 X hat f val loss tf n
  • 使用指针传递引用和值[重复]

    这个问题在这里已经有答案了 我不明白为什么将指针传递给函数不会更改传入的数据 如果函数原型如下所示 void func int p 并且 func 为 p 分配了内存 为什么不能在函数外部使用它 我以为指针就是地址 虽然这样的事情符合你的期
  • 我如何使用肘节检查连接性?

    我需要使用连接库检查应用程序内每个页面的连接性 所以我将在提供者内部使用一肘 问题是何时关闭流以便在用户关闭应用程序时可以处理它 像这样 import package connectivity connectivity dart overr
  • 比较 sbt 和 Gradle [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在深入研究 Scala 并注意到 sbt 我对 java groovy 项目中的 Gradle 非常满意 而且我知道 Gradle 有一个
  • 使用 R 在时间序列图中标记 X 轴

    我对 R 有点陌生 一般绘图经验有限 我已经能够使用zoo将我的数据作为R中的时间序列对象来获取 但是我很难正确标记xaxis 如果这一切的话 当我绘制动物园对象时 plot z x 轴仅显示一个标签 即 2010 年 该系列从 2009
  • 在Javascript中实现迷宫生成算法[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我了解 深度优先 迷宫生成算法 但我
  • 在每第 3 个 div Jquery 之后附加 Span 标签

    我正在寻找在每三个 div 标签之后放置一个 span 标签的解决方案 HTML div class grid 15 div class grid 5 p Sun p div div class suggest nudge up span
  • 护照认证失败导致重定向循环

    我正在使用带有 Facebook 身份验证的 Node Express 和 Passport 我有以下路线 当 facebook auth callback是回调url function render page req res var us
  • 不推荐使用带大括号的数组和字符串偏移访问语法

    我刚刚将我的 php 版本更新到 7 4 我注意到弹出了这个错误 不推荐使用带大括号的数组和字符串偏移访问语法 这是我的代码的一部分 它触发了上述错误 public function getRecordID string zoneID st
  • 无法在 IOS 上通过 CORS 发送凭据

    我有一个恶作剧问题 在解决这个问题很长时间后我来找你 我有一个具有以下规格的混合应用程序 Ionic 3 9 2 Angular 5 2 11 Cordova Android 8 1 0 and iOS 5 1 1 Cordova 8 0
  • UISearchBar显示错误:文本太左,与放大镜图标重叠

    我遇到了最奇怪的显示错误UISearchBar 这是我的代码 在另一个应用程序中完美运行 我在代码中创建搜索栏 因为 xib 文件不可行 searchBar UISearchBar alloc initWithFrame CGRectMak