我有一个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。
发布于 2010-11-04 15:13:00
尝试使用splitView:constrainMaxCoordinate:ofSubviewAt:和splitView:constrainMinCoordinate:ofSubviewAt:而不是splitView:constrainSplitPosition:ofSubviewAt:。
当用户拖动鼠标时,前两种方法只被调用一次,它们为NSSplitView提供了足够的信息,使其知道如何在拖动期间更改光标。
当用户拖动拆分器时,会反复调用后者,因此NSSplitView没有足够的信息来知道每次返回一个常量值,因此不能更改游标。
发布于 2012-03-05 17:45:34
我知道这个问题已经回答了一段时间,但所提供的答案并不符合我的需要。
委托方法splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:允许您设置拖动分隔符的有效矩形。如果您返回NSZeroRect,则无论您在splitView:constrainMaxCoordinate:ofSubviewAt:和splitView:constrainMinCoordinate:ofSubviewAt:中的设置如何,都不会出现拖动游标。
希望这能帮助其他人降落在这里。
https://stackoverflow.com/questions/4091560
复制相似问题