我有一个带有三个子视图的NSSplitView( NO UISplitView(Controller)!! )。现在,对于最后一个分隔符(索引1
),我希望分隔符不显示拖动光标(两个箭头指向彼此之外)。我有这个停止拖动,但光标仍然显示:
- (CGFloat)splitView:(NSSplitView *)splitView constrainSplitPosition:(CGFloat)proposedPosition ofSubviewAt:(NSInteger)dividerIndex {
if (dividerIndex == 1) {
return [splitView frame].size.width - 161;
}
}
请注意,我只想隐藏索引1
处分隔符的光标。谁能帮我?谢谢。 :)
不,我不想使用BWToolkit。
答案 0 :(得分:79)
我知道这已经回答了一段时间,但提供的答案并不符合我的需要。
委托方法splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:
允许您设置拖动分隔符的有效矩形。如果您返回NSZeroRect
,则不会显示任何拖动光标,无论您在splitView:constrainMaxCoordinate:ofSubviewAt:
和splitView:constrainMinCoordinate:ofSubviewAt:
中进行设置。
希望能帮助其他人降落在这里。
答案 1 :(得分:0)
尝试使用splitView:constrainMaxCoordinate:ofSubviewAt:
和splitView:constrainMinCoordinate:ofSubviewAt:
代替splitView:constrainSplitPosition:ofSubviewAt:
。
前两种方法在用户拖动鼠标时调用一次,它们为NSSplitView提供了足够的信息,以便知道在拖动过程中如何更改光标。
当用户拖动拆分器时,后者被重复调用,因此NSSplitView没有足够的信息知道您每次都返回一个常量值,因此无法更改游标。