gpt4 book ai didi

ios - UISearchBar 显示错误 : text too far left, 与放大镜图标重叠

转载 作者:可可西里 更新时间:2023-11-01 04:08:34 25 4
gpt4 key购买 nike

我的 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;

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

UISearchBar with display bug

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

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

最佳答案

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

UITextField 上的此类类别也会导致您的应用程序在初始化使用 UITextField 的框架类时崩溃,例如 MFMailComposeViewController,因此它有几个原因是个坏主意。

关于ios - UISearchBar 显示错误 : text too far left, 与放大镜图标重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5526047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com