我的应用程序有两个主要视图:NSScrollView和WebView中的NSTextView子类。 WebView显示的内容取决于用户在文本视图中输入的内容 - 所以我希望当用户滚动文本视图或Web视图时按比例滚动其他滚动。如何同步NSScrollView和WebView的滚动?
我发现this article其中提到了如何使用2个滚动视图。我的问题是WebKit似乎没有在任何地方使用正常的滚动视图。
我该如何实施?我错过了什么?
我的应用程序有两个主要视图:NSScrollView和WebView中的NSTextView子类。 WebView显示的内容取决于用户在文本视图中输入的内容 - 所以我希望当用户滚动文本视图或Web视图时按比例滚动其他滚动。如何同步NSScrollView和WebView的滚动?
我发现this article其中提到了如何使用2个滚动视图。我的问题是WebKit似乎没有在任何地方使用正常的滚动视图。
我该如何实施?我错过了什么?
这不是一个可以完美解决的微不足道的问题,因为很难知道文本视图中正在编辑的文本的数量是否与Web视图中的滚动类似。
但是,要回答您关于WebView中滚动视图的问题,可以使用它们,但据我所知,没有广泛记录。您必须利用这一事实,即您可以使用公共API获取正在使用的滚动视图,方法是向相应的WebView子视图请求其“enclosingScrollView”。这样的事情对我的作品在WebView中,我知道,只有一个框架:
[[[[myWebView mainFrame] frameView] documentView] enclosingScrollView];
如果他们按比例滚动,可能是最简单的解决办法是覆盖在你的UIScrollview
触摸事件,并在impliment stringByEvaluatingJavaScriptFromString:
(js)window.scroll(x,y)
。但是,从webView滚动到textview需要更多的工作。 web视图吃触摸事件,所以你需要
创建一个顶级UIView
或UIScroll
鉴于其捕获接触,并将它们发送到两个scrollView
和webView
(通过JavaScript)的所有触摸事件,或
使用手势识别器来做同样的事情。
感谢您的答案,但这是一个Mac相关的问题。 – 2011-09-16 11:52:44
我有一个非常类似的问题,除了我想使用两个WebViews。你介意分享一些你用来设置的代码,我有问题。 – 2011-12-14 17:46:02
如果不知道更多关于您的问题,很难知道要分享哪些代码。我建议尝试抓住你的设置的一些细节,这是你混淆,并写一个单独的堆栈溢出问题,以尝试记录问题和解决方案。 – danielpunkass 2011-12-28 14:24:10