问:
How can I make fixed width of the left pane in the NSSplitView?
I want to make it as in iTunes. When user resize a window only right pane should change width.
回答:
Your split view delegate should implement the following method:
-(void)splitView:(NSSplitView *)sender resizeSubviewsWithOldSize: (NSSize)oldSize
{
CGFloat dividerThickness = [sender dividerThickness];
NSRect leftRect = [[[sender subviews] objectAtIndex:0] frame];
NSRect rightRect = [[[sender subviews] objectAtIndex:1] frame];
NSRect newFrame = [sender frame];
leftRect.size.height = newFrame.size.height; leftRect.origin = NSMakePoint(0, 0); rightRect.size.width = newFrame.size.width - leftRect.size.width - dividerThickness; rightRect.size.height = newFrame.size.height; rightRect.origin.x = leftRect.size.width + dividerThickness;
[[[sender subviews] objectAtIndex:0] setFrame:leftRect]; [[[sender subviews] objectAtIndex:1] setFrame:rightRect]; }