2

弾力性を取り除きたいウェブビューがあります。現在のように、Webビューよりも小さいページをスクロールすると、下の背景が見える弾力性のある効果が得られます。これを削除したいと思います。

私は次のことを試みましたが、成功しませんでした。見つけますWebDynamicScrollBarsViewが、これの弾力性を設定しても何も変わりません。

- (void)awakeFromNib
{
    NSScrollView *scrollView = [self findScrollViewInSubviews:self.subviews];
    scrollView.horizontalScrollElasticity = NSScrollElasticityNone;
    scrollView.verticalScrollElasticity = NSScrollElasticityNone;
}

- (NSScrollView *)findScrollViewInSubviews:(NSArray *)subviews
{
    for (NSView *view in subviews)
    {
        if ([view isKindOfClass:[NSScrollView class]])
            return (NSScrollView *) view;
        else
            return [self findScrollViewInSubviews:view.subviews];
    }

    return nil;
}

Webビューから弾性効果を削除する方法を知っている人はいますか?

4

1 に答える 1

6

WebView の私のサブクラスで (または、 を使用して直接実行することもできますがwebView.mainFrame.frameView.documentView.enclosingScrollView、個人的にはこれにより簡単になります)

// return the scroll view that we are currently using, if applicatble
- (NSScrollView *)mainScrollView {
    return [[[[self mainFrame] frameView] documentView] enclosingScrollView]; // can be nil
}

次に、読み込みが完了すると、答えを入力しているときにアンが文字通り指摘したように:)、

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame {
    NSScrollView *mainScrollView = [sender mainScrollView];
    [mainScrollView setVerticalScrollElasticity:NSScrollElasticityNone]; 
    [mainScrollView setHorizontalScrollElasticity:NSScrollElasticityNone];
}

コンテンツがロードされた後にそれを行う必要があるかどうかはわかりませんが、今試してみるための Mac が手元にありません。

于 2012-06-23T16:37:27.053 に答える