16

3つのサブビューを持つNSSplitView(UISplitView(Controller)!!はありません)があります。ここで、最後の仕切り(index 1)について、仕切りにドラッグカーソル(2つの矢印が互いに向き合う)を表示しないようにします。ドラッグを停止するためにこれがありますが、カーソルはまだ表示されています:

- (CGFloat)splitView:(NSSplitView *)splitView constrainSplitPosition:(CGFloat)proposedPosition ofSubviewAt:(NSInteger)dividerIndex {
  if (dividerIndex == 1) {
    return [splitView frame].size.width - 161;
  }
}

インデックスの分周器のカーソルのみを非表示にしたいことに注意してください1。誰か助けてもらえますか?ありがとう。:)


いいえ、BWToolkitは使いたくありません。

4

2 に答える 2

81

私はこれがしばらくの間答えられたことを知っています、しかし提供された答えは私のニーズに合いませんでした。

デリゲートメソッドsplitView:effectiveRect:forDrawnRect:ofDividerAtIndex:を使用すると、仕切りをドラッグするための有効な長方形を設定できます。を返すと、とNSZeroRectの設定に関係なく、ドラッグカーソルは表示されません。splitView:constrainMaxCoordinate:ofSubviewAt:splitView:constrainMinCoordinate:ofSubviewAt:

それがここに着陸する他の誰かを助けることを願っています。

于 2012-03-05T17:45:34.137 に答える
0

の代わりにsplitView:constrainMaxCoordinate:ofSubviewAt:andを使用してみてください。splitView:constrainMinCoordinate:ofSubviewAt:splitView:constrainSplitPosition:ofSubviewAt:

前の2つのメソッドは、ユーザーがマウスをドラッグするときに1回呼び出され、NSSplitViewがドラッグ中にカーソルを変更する方法を知るのに十分な情報を提供します。

後者は、ユーザーがスプリッターをドラッグすると繰り返し呼び出されるため、NSSplitViewには、毎回一定の値を返していることを知るための十分な情報がないため、カーソルを変更できません。

于 2010-11-04T15:13:00.467 に答える