[Previous] [Class List] [Next]

NSSplitViewDelegate



Class Description


<<Description Forthcoming>>




Instance Methods



splitView:canCollapseSubview:

- (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview

Allows the delegate to determine whether the user can collapse and un-collapse subview. If this method returns NO or is undefined, subview can't be collapsed. If this method returns YES, subview collapses when the user drags a divider beyond the halfway mark between its minimum size and its edge. subview un-collapses when the user drags the divider back beyond that point. To specify the minimum size, define the methods splitView:constrainMaxCoordinate:ofSubviewAt: and splitView:constrainMinCoordinate:ofSubviewAt:. Note that a subview can collapse only if you also define splitView:constrainMinCoordinate:ofSubviewAt:.

A collapsed subview is hidden but retained by the NSSplitView object, with the same size it had before it was collapsed



splitView:constrainMaxCoordinate:ofSubviewAt:

- (float)splitView:(NSSplitView *)sender constrainMaxCoordinate:(float)proposedMax ofSubviewAt:(int)offset

Lets delegate constrain the maximum coordinate limit of a divider when the user drags it. Invoke this method before the NSSplitView begins tracking the mouse to position a divider. You may further constrain the limits that have been already set, but you cannot extend the divider limits. proposedMax is specified in the NSSplitView's flipped coordinate system. If the split bars are horizontal (views are one on top of the other), proposedMax is the bottom limit. If the split bars are vertical (views are side by side), proposedMax is the right limit. The initial value of proposedMax is the bottom (or right side) of the subview after the divider. offset specifies the divider the user is moving, with the first divider being 0 and going up from top to bottom (or left to right).

See Also: - isVertical



splitView:constrainMinCoordinate:ofSubviewAt:

- (float)splitView:(NSSplitView *)sender constrainMinCoordinate:(float)proposedMin ofSubviewAt:(int)offset

Lets delegate constrain the minimum coordinate limit of a divider when the user drags it. Invoke this method before the NSSplitView begins tracking the mouse to position a divider. You may further constrain the limits that have been already set, but you cannot extend the divider limits. proposedMin is specified in the NSSplitView's flipped coordinate system. If the split bars are horizontal (views are one on top of the other), proposedMin is the top limit. If the split bars are vertical (views are side by side), proposedMin is the left limit. The initial value of proposedMin is the top (or left side) of the subview before the divider. offset specifies the divider the user is moving, with the first divider being 0 and going up from top to bottom (or left to right).

See Also: - isVertical



splitView:constrainMinCoordinate:maxCoordinate:ofSubviewAt:

- (void)splitView:(NSSplitView *)sender constrainMinCoordinate:(float *)min maxCoordinate:(float *)max ofSubviewAt:(int)offset

Allows the delegate to constrain the coordinate limits of a divider when the user drags it. Invoke this method before the NSSplitView begins tracking the mouse to position a divider. <<What does this mean? Doesn't NSSplitView invoke this method for you?>> You may further constrain the limits that have been already set, but you cannot extend the divider limits. min and max are specified in the NSSplitView's flipped coordinate system. If the split bars are horizontal (views are one on top of the other), min is the top limit and max is the bottom limit. If the split bars are vertical (views are side by side), min is the left limit and max is the right limit. The initial value of min is the top (or left side) of the subview before the divider, and the initial value of max is the bottom (or right side) of the subview after the divider. offset specifies the divider the user is moving, with the first divider being 0 and going up from top to bottom (or left to right).

<<JPM: In the current header, this is not listed, but there are separate methods for the min and max instead.>>

See Also: - isVertical



splitView:constrainSplitPosition:ofSubviewAt:

- (float)splitView:(NSSplitView *)splitView constrainSplitPosition:(float)proposedPosition ofSubviewAt:(int)offset

Allows the delegate to constrain the divider to certain positions. If the delegate implemements this method, the NSSplitView calls it repeatedly as the user moves the divider. This method returns where you want the divider to be, given proposedPosition, the mouse's current position. offset is the divider the user is moving, with the first divider being 0 and going up from top to bottom (or from left to right).

For example, if a subview's height must be a multiple of a certain number, use this method to return the multiple nearest to proposedPosition.



splitView:resizeSubviewsWithOldSize:

- (void)splitView:(NSSplitView *)sender resizeSubviewsWithOldSize:(NSSize)oldSize

Allows the delegate to specify custom sizing behavior for the subviews of the NSSplitView. If the delegate implements this method, splitView:resizeSubviewsWithOldSize: is invoked after the NSSplitView is resized. The size of the NSSplitView before the user resized it is indicated by oldSize; the subviews should be resized such that the sum of the sizes of the subviews plus the sum of the thickness of the dividers equals the size of the NSSplitView's new frame. You can get the thickness of a divider through the dividerThickness method.

Note that if you implement this delegate method to resize subviews on your own, the NSSplitView does not perform any error checking for you. However, you can invoke adjustSubviews to perform the default sizing behavior.

See Also: - adjustSubviews, - setFrame: (NSView)



splitViewDidResizeSubviews:

- (void)splitViewDidResizeSubviews:(NSNotification *)aNotification

Sent by the default notification center to the delegate; aNotification is always an NSSplitViewDidResizeSubviewsNotification. If the delegate implements this method, the delegate is automatically registered to receive this notification. This method is invoked after the NSSplitView resizes two of its subviews in response to the repositioning of a divider.

splitViewWillResizeSubviews:

- (void)splitViewWillResizeSubviews:(NSNotification *)aNotification

Sent by the default notification center to the delegate; aNotification is always an NSSplitViewWillResizeSubviewsNotification. If the delegate implements this method, the delegate is automatically registered to receive this notification. This method is invoked before the NSSplitView resizes two of its subviews in response to the repositioning of a divider.


[Previous] [Next]