objective-c - 如何改变WebView的网页位置?操作系统X

标签 objective-c macos cocoa webview webkit

假设我有一个加载 twitter.com 的 WebView。
这是我的 WebView 中显示的内容: enter image description here

这就是我想展示的内容: enter image description here

如何更改 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/

相关文章:

iphone - 访问委托(delegate)中的局部变量的正确方法是什么?

ios - 检测 Touch ID 已启用

ios - 在 iphone 6 上具有 600x600 pt 框架的 UIViews 加上尺寸等级

objective-c - Mac应用程序: 'Auto Loading' the last used Document

bash - Mac bash 拆分不能按行字节拆分

objective-c - 如何使用 Cocoa 在我的 Dock 图标上绘制徽章?

objective-c - 当我尝试创建 NSSpeechSynthesizer 实例时获取 EXC_BAD_ACCESS

ios - 找不到 AmazonServiceException Unmarshaller.h 文件

ios - 在 UILabel 中设置文本(带有表情符号、特殊字符、链接),并且链接应该是可点击的

macos - 如何使用 NSCursor 显示自定义光标