假设我有一个加载 twitter.com 的 WebView。
这是我的 WebView 中显示的内容:
这就是我想展示的内容:
如何更改 WebView 上网站的默认左上角位置以显示同一网站的另一个位置?
最佳答案
我使用它来移动它(您需要设置frameLoadDelegate):
-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
if (frame == self.myWebview.mainFrame)
{
DOMDocument *mainDoc = [self.myWebview.mainFrame DOMDocument];
DOMNodeList *list = [mainDoc getElementsByClassName:@"front-signin js-front-signin"];
DOMNode *loginElement = [list item:0];
NSRect myRect = loginElement.boundingBox;
[self.myWebview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(%d,%d);", (int)myRect.origin.x, (int)myRect.origin.y]];
}
}
“front-signin js-front-signin”是 www.twitter.com 的源 html 中使用的类的名称。
因此,依赖随时可能发生变化的事物很容易失败。
在这种情况下,标题也不会移动。因此,要么考虑它并显示它,要么将您的 View 向上移动到此标题的大小并隐藏它。
您需要调整scrollTo调用以使其在 View 中居中。
并且您可能需要考虑在加载 View 后淡入淡出 View ,因为滚动有点不稳定,并且不太像 osx。
但除此之外,它还可以工作;-)
关于objective-c - 如何改变WebView的网页位置?操作系统X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12984436/