同步两个Web视图

时间:2015-01-19 12:33:19

标签: swift desktop-application

我需要同步两个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")
    }
}

1 个答案:

答案 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)
    }
}