NSScrollViewの垂直スクロールを無効にするにはどうすればよいですか?NSScrollViewの垂直スクロールを無効にするにはどうすればよいですか?
私はGoogleで簡単な解決策を見つけることができません。
おかげ
NSScrollViewの垂直スクロールを無効にするにはどうすればよいですか?NSScrollViewの垂直スクロールを無効にするにはどうすればよいですか?
私はGoogleで簡単な解決策を見つけることができません。
おかげ
あなたはscrollViewDidScroll:にオフセットコンテンツを観察し、あなたが好きな値にxの値を設定することができます。
編集: [OK]をクリックします。これを見たことがありますか:Constraining Scrolling?あなたが垂直スクロールバーを無効にする
- (void)setHasVerticalScroller:(BOOL)flag;
に出くわした場合
はNSScrollViewサブクラスでこれを試してみてください:私は上記のイワンの答えを好き
NSLog(@"user scrolled %f horizontally and %f vertically", [theEvent deltaX], [theEvent deltaY]);
素晴らしい!ありがとう!! – Jad
:
- (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つの方向にスクロールされているかどうかを確認し、それを処理します適切に。重複する可能性のある
:私はMac上でだ http://stackoverflow.com/questions/12626288/disable-scrolling-in-nstableview – gwdp