使NSSplitView的分隔符不可分割,并且不显示拖动光标

16 cocoa objective-c cursor nssplitview

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

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

请注意,我只想隐藏索引处分隔符的光标1.谁能帮我?谢谢.:)


不,我不想使用BWToolkit.

Mik*_*e A 81

我知道这已经回答了一段时间,但提供的答案并不适合我的需要.

委托方法splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:允许您设置拖动分隔符的有效矩形.如果您返回NSZeroRect,则无论您在splitView:constrainMaxCoordinate:ofSubviewAt:和中的设置如何都不会出现拖动光标splitView:constrainMinCoordinate:ofSubviewAt:.

希望能帮助其他人登陆这里.

  • 这应该标记为答案,因为它回答了问题. (7认同)

kpe*_*yua 0

尝试使用splitView:constrainMaxCoordinate:ofSubviewAt:andsplitView:constrainMinCoordinate:ofSubviewAt:代替splitView:constrainSplitPosition:ofSubviewAt:

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

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