如何让NSSplitView的子View的大小固定

来源:互联网 发布:男士皮衣品牌 知乎 编辑:程序博客网 时间:2024/06/07 23:59

问:

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];}


原创粉丝点击