我需要一个搜索控件,允许用户搜索某些内容,然后如果他们找不到,他们会按下添加按钮来添加它。我需要在用户输入要搜索的文本时显示添加按钮,我正在思考文本的右侧。如果我将按钮放在导航栏中,则在用户搜索时不会显示该按钮。
我想使用搜索栏和搜索显示控制器,因为我需要在用户输入时显示结果的功能。这里的第一个答案 - Adding button to left of UISearchBar - 似乎不适用于搜索显示控制器。当用户激活搜索字段时,它会消失。
我已经走了几条兔子小道:
在第二个答案 - Adding button to left of UISearchBar - 我看到它建议覆盖书签按钮。这是非常聪明和有效,但我无法弄清楚如何获得“官方”添加按钮图像来覆盖。模拟器似乎不再有图像(?),我不喜欢在我的代码中硬编码的想法。我宁愿(重新)使用Apple的Add按钮图标,但我无法弄清楚如何做到这一点。
我玩弄了一个UISearchBar的子类,它是从一个带有搜索栏和按钮的笔尖加载的,但是我知道如果我沿着这条路走下去,我想我必须重新实现UISearchBar的接口和转发所有方法调用我正在管理的“真正的”UISearchBar。这看起来很糟糕。
我尝试创建一个子类UISearchBar的视图,并在初始化时动态添加按钮。但在那条道路上,我陷入了困境之中。搜索栏中文本字段的约束在视图层次结构中有几个级别,我很确定至少有一个约束,我需要删除,同意? (因为文本字段当前被约束为扩展到搜索栏的末尾)。
我也尝试了相同的子类,并尝试在layoutSubviews中设置控件的位置,但是当我这样做时,我发现自己必须将所有子控件放在搜索栏中(包括取消按钮等) ,这似乎不对。
我还处于学习模式,而且我的时间表并不紧张。我想以“正确”的方式做到这一点。意思是我想重用现有的代码和功能,只需添加一个添加按钮。解决这个问题的“正确”方法是什么?
谢谢!