我正在尝试使用网络视图构建一个简单的MacOS应用程序。我正在使用WKWebView并且没有明显的原因,webViewWebContentProcessDidTerminate()在初始化Web视图后立即调用该方法,而没有Web视图,甚至尝试加载任何内容。经过数小时的浏览文档和在线问题,我无法弄清楚为什么会发生这种情况以及如何防止这种情况发生。在线建议的唯一一件事是在发生这种情况时重新加载Web视图,这将导致稍后再次调用该方法,以此类推。我现在使用以下源代码浏览一个完全空白的MacOS应用程序:
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
var webView: WKWebView!
func applicationDidFinishLaunching(_ aNotification: Notification) {
webView = WKWebView(frame: .zero, configuration: WKWebViewConfiguration())
webView.navigationDelegate = self
}
}
extension AppDelegate: WKNavigationDelegate {
func webViewWebContentProcessDidTerminate(_ webView: WKWebView) {
print("web view process did terminate")
webView.reload()
}
}
Run Code Online (Sandbox Code Playgroud)
Web视图是否在视图层次结构中,是否具有非零框架以及通常是否可见均无关紧要。我还启用了任意负载,只是为了尝试所有内容。
我真的很感谢这方面的帮助。我正在针对10.13 SDK进行编译,并在MacOS 10.12上运行。
谢谢。
在 XCTest 中,有一种方法可以按类型获取所有 UI 元素,然后按 AccessibilityIdentifier 进行过滤,例如:
app.buttons[someID]
Run Code Online (Sandbox Code Playgroud)
但是如果我不知道视图的类型怎么办?如果我正在寻找 UIView,我可以写:
app.otherElements[someID]
Run Code Online (Sandbox Code Playgroud)
但这不包括 UIButton 视图。
我可以通过连续调用所有方法(staticTexts、textViews、buttons、otherElements 等)来实现这一点,但有些东西告诉我它的性能不是很好,因为类型列表很大。
有没有通用的方法?