0

NSScrollView 内に IKImageBrowserView が埋め込まれています。

Lion や Sparrow や Reeder などの他のアプリで見られるようなスクロール バーを実現しようとしています。スクロール バーをコンテンツの上に移動したいと思います。

したがって、私が抱えている唯一の問題は、コンテンツがスクロールバーの下ではなく上に移動することです。

NSScrollView のメソッドを使用してさまざまな部分を配置できる-tileことはわかっていますが、それを目的に使用する方法がわかりません。

編集:これは私のコードです-tile:

- (void)tile
{
    [super tile];

    // We move the scroll to be just below the scrollView
    NSScroller *verticalScroller = [self verticalScroller];
    NSRect verticalScrollerFrame = [verticalScroller frame];
    verticalScrollerFrame.origin.x -= 117.0;
    [verticalScroller setFrame:verticalScrollerFrame];

    // We expand the scrollview to embrace the whole window
    NSRect scrollViewFrame = [self frame];
    scrollViewFrame.size.width = 655.0;
    [self setFrame:scrollViewFrame];

}

これは次のようになります。

プレビュー

スクロールバーのコンテンツがコンテンツビューの下にある理由を知っている人はいますか? または例がありますか?

私はすでにこのトピックを見てきました:答えを見つけることなく、 NSScrollerをコンテンツや他の多くのものにオーバーレイします。

ご協力いただきありがとうございます!

4

2 に答える 2

2

OK、私は問題を見つけたと思います。

NSRect scrollViewFrame = [self frame];
scrollViewFrame.size.width = 655.0;
[self setFrame:scrollViewFrame];

このブロックでは[self frame]、代わりに NSClipView contentFrame を取得するために使用しています[[self contentView] frame]

このように見えるはずです。

NSRect scrollViewFrame = [[self contentView] frame];
scrollViewFrame.size.width = 655.0;
[[self contentView] setFrame:scrollViewFrame];

まだ試していませんが、これが問題だと確信しています。

于 2011-03-08T12:06:57.073 に答える
1

Sparrow の開発者は、彼のコードをここに投稿しました: http://dinhviethoa.tumblr.com/post/6138273608/ios-style-scrollbars-for-nsscrollview

于 2011-12-29T10:01:11.997 に答える