2015-01-19 5 views
0

Мне нужно синхронизировать два веб-представления, так что все, что происходит в одном веб-представлении, происходит одновременно в другом.Синхронизация двух просмотров веб-страниц

Я пробовал различные способы, без успеха, и чем больше я стараюсь, тем более запутанной и, вероятно, ошибкой, с которой это происходит.

Я чувствую, что, возможно, очень простой способ сделать это, но не могу понять это. Одна из вещей, которые я банкнота не Разрешенный с тем же NSTextField как «takeStringURLFrom»

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

Да, я хотел бы синхронизировать все между двумя веб-представлениями. Таким образом, пользовательские взаимодействия, а также два представления, разделяющие takeStringURLFrom из одного NSTextField. Я попытался использовать 2 NSTextFields, связанных вместе с var в делете приложения, который позаботится об этом аспекте, но если я затем попробую и вызову takeStringURLFrom для каждого веб-представления в делегате веб-представления (делегат приложения) внутри didCommitLoadForFrame, он ломается. –

+0

обновленный пример кода выше –

ответ

0

мне не нравится это, но это, кажется, работает по мере необходимости. Я думаю, что это требует некоторой доработки. Используя скрытый текстовое поле, чтобы имитировать URL для второго веб-просмотра и связать каждый веб-просмотра, чтобы там соответствующих текстовых полей с помощью ссылочного действия веб-просмотра в «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) 
    } 
} 
Смежные вопросы