NSScrollView は、一度に表示できる/表示できるものよりも大きな「キャンバス」を持つビューを管理します。したがって、別の動作が必要な場合:
たとえば、私はかつて世界地図プログラムを書いたことがありますが、地図を水平軸上で永遠にループさせる必要がありました。サブクラス化された NSView を使用して手動でスクロールを管理しました。(現在、コードにアクセスできません)
熟考すべきこと: あなたの理由は理解できますが、それについて言及したかっただけです。この動作は、ユーザーが想定している必要があります。ボタンのように見える場合は、out のように動作する必要があります。現在、スクロールビューには弾力性があるため、勢いでスクロールするとき (ユーザーが触れなくなったとき)、最後に到達しても突然停止することはありません... これはユーザーにとって耳障りです。
例
NSScrollview をサブクラス化する場合- (void)scrollWheel:(NSEvent *)
、contentView の境界をオーバーライドして検出し、特定の値に制限します。次の行の周りの何か:
- (void)scrollWheel:(NSEvent *)event
{
[super scrollWheel:event];
if (self.contentView.bounds.origin.y > SomeConstant)
/* cap the value */
}