16

我有一个带有三个子视图的 NSSplitView ( NO UISplitView(Controller)!! )。现在,对于最后一个分隔线(索引1),我希望分隔线不显示拖动光标(两个箭头相互指向)。我有这个来停止拖动,但光标仍然出现:

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

请注意,我只想在 index 处隐藏分隔线的光标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:andsplitView:constrainMinCoordinate:ofSubviewAt:而不是splitView:constrainSplitPosition:ofSubviewAt:.

前两个方法在用户拖动鼠标时被调用一次,它们为 NSSplitView 提供了足够的信息来了解如何在拖动过程中更改光标。

后者在用户拖动拆分器时重复调用,因此 NSSplitView 没有足够的信息来知道您每次都返回一个常量值,因此无法更改光标。

于 2010-11-04T15:13:00.467 回答