我需要同步两个Web视图,以便在一个Web视图中发生的任何事情在另一个Web视图中同时发生。
我尝试了各种各样的方法,没有成功,而且我尝试的越多越复杂,可能会遇到错误。
我觉得有一种非常简单的方法可以做到这一点,但无法弄明白。 我注意到的一件事是不允许使用与“takeStringURLFrom”相同的NSTextField
override func controlTextDidEndEditing(obj: NSNotification) {
webViewLeft.takeStringURLFrom(hiddenTextField)
webViewRight.takeStringURLFrom(urlField)
}
override func webView(sender: WebView!, didCommitLoadForFrame frame: WebFrame!) {
if frame == sender.mainFrame {
urlField.stringValue = sender.mainFrameURL
hiddenTextField.stringValue = sender.mainFrameURL
webViewRight.takeStringURLFrom(urlField)
webViewLeft.takeStringURLFrom(hiddenTextField)
printLn("realised just creating an infinite loop here")
}
}
答案 0 :(得分:0)
我不喜欢这样,但似乎可以根据需要运作。我认为它需要一些改进。使用隐藏文本字段模仿第二个Web视图的URL,并通过Web视图的引用操作将每个Web视图绑定到相应的文本字段" takeStringUrlFrom"
override func webView(sender: WebView!, didStartProvisionalLoadForFrame frame: WebFrame!) {
if frame == sender.mainFrame {
urlField.stringValue = sender.mainFrameURL
hiddenTextField.stringValue = sender.mainFrameURL
window.makeFirstResponder(nil)
window.makeFirstResponder(hiddenTextField)
window.makeFirstResponder(nil)
window.makeFirstResponder(urlField)
window.makeFirstResponder(nil)
}
}