我们只支持横向模式,由于某种原因,当我们推送到不同的视图控制器,旋转应用程序,然后弹出时,我们的 UISearchBar 将占据整个导航栏,甚至将标题推送到 LHS。所以我们最终将 UISearchBar 包装在 UIToolbar 中,这似乎解决了这个问题。
因此,在第二个被推入堆栈的视图控制器上,我们在 UINavigationBar 的 UIToolbar 中有一个 UISearchbar。我似乎无法访问它。我想编写一个脚本来输入一些搜索项并单击这些项,这样当我们的数据模型发生变化时,我们就不会崩溃。
我遇到的问题是我不确定如何访问它。我假设
UIATarget.localTarget().frontMostApp().mainWindow()
可以在不仅仅是 rootViewController 的屏幕上使用。所以我试着做
UIATarget.localTarget().frontMostApp().mainWindow().navigationBar().toolBar().tap();
但这不起作用。我假设 navigationBar().buttons()[---] 也不会提供任何用途,因为它不是我要访问的按钮。当我做
window.logElementTree();
我懂了:
UIAWindow
-> UIANavigationBar
-> -> UIAButton
-> -> UIAToolbar // (I'm trying to show the disclosure triangles in how it looks like in the log.
所以我可以看到我需要的导航栏,以及它下面的工具栏,但不知道如何到达它。
我也试过这个
var navBarElements = window.navigationBar().elements();
for (var elem in navBarElements) {
if (elem["Toolbar"]) {
UIALogger.logMessage("toolbar");
}
}
在我创建工具栏时的代码 viewDidLoad 中,我有这个:
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 160, 44)];
toolbar.accessibilityIdentifier = @"Toolbar";
但是我从来没有得到表明我有正确的项目的 logMessage。我是否一直试图只使用屏幕并点击它?谢谢!