2012-03-21 7 views

答えて

0

あなたはscrollViewDidScroll:にオフセットコンテンツを観察し、あなたが好きな値にxの値を設定することができます。

編集: [OK]をクリックします。これを見たことがありますか:Constraining Scrolling?あなたが垂直スクロールバーを無効にする

- (void)setHasVerticalScroller:(BOOL)flag; 

に出くわした場合

+1

、あなたが私を与えたリンクがダウン投票のiOS – aneuryzm

+0

感謝です... – dasdom

+0

あなたが望むように削除 – aneuryzm

-7

不思議でしたか?

これはInterface Builderで設定することもできます。

+5

スクロールを隠しますが、スクロールはまだジェスチャーで可能です – aneuryzm

4

はNSScrollViewサブクラスでこれを試してみてください:私は上記のイワンの答えを好き

NSLog(@"user scrolled %f horizontally and %f vertically", [theEvent deltaX], [theEvent deltaY]); 
+0

素晴らしい!ありがとう!! – Jad

0

- (void)scrollWheel:(NSEvent *)theEvent 
{ 
    [super scrollWheel:theEvent]; 

    if ([theEvent deltaY] != 0.0) 
    { 
     [[self nextResponder] scrollWheel:theEvent]; 
    } 
} 

また、あなたはでそれをログに記録することができます。しかし、私の場合は、各行にコレクションビュー(水平スクロール)が含まれているテーブルビュー(垂直スクロール)がありました。

ユーザーがスクロールアップしようとしたときに、マウスがコレクションビューの1つ上にマウスを置いた場合、スクロールアップまたはスクロールできなくなります。これを解決する

は、私はNSCollectionViewsを含むことNSScrollViewをサブクラス化し、私は、次のコードでこのメソッドをオーバーライド:

override func scrollWheel(with event: NSEvent) 
{ 
    if (fabs(Double(event.deltaY)) > fabs(Double(event.deltaX))) { 
     self.nextResponder?.scrollWheel(with: event); 
    } else { 
     super.scrollWheel(with: event); 
    } 
} 

このように、ユーザが主に1つの方向にスクロールされているかどうかを確認し、それを処理します適切に。重複する可能性のある