I wanna share the investigation I did in the past few days. I am able to get NSSplitView behaves the way I want partially. It's not a complete solution yet. But, hopefully, someone can help me answer the part I can't.
"Notes" app possibly uses a single NSSplitView.

The above screenshot shows "Notes" app running in Xcode 6 Veiw Debugger mode.
It's a subclass of NSSplitView called MainSplitView.
To study how "Notes" app's split view behave the way I want when dividers are resized, I open it with "Cocoa Layout" instrument from Xcode Instruments and study the constraint events when I move divider 0 rightward.

Studying the constraint events and compare it with the log generated running the original version of my sample app...

I found that the main difference is... the constraint between the rightmost subview with the split view's left edge has "low" priority in "Notes" app. A similar constraint has "required" priority in my sample app.
So, I tried implement my own MainSplitView. Override the "addConstraints:" method so that a lower priority is set to the constraint.
- (void)addConstraints:(NSArray *)constraints {
NSLog(@"adding constraints: %@", constraints);
NSLayoutConstraint * theConstraint = constraints.firstObject;
if ( theConstraint.firstItem == self.subviews.lastObject && theConstraint.secondItem == self ) {
theConstraint.priority = NSLayoutPriorityDefaultLow;
[super addConstraints:@[theConstraint]];
} else {
[super addConstraints:constraints];
}
NSLog(@"========== constraings affecting layout ===========");
for (NSView * theView in self.subviews) {
NSLog(@"view: %@\n%@", theView, [theView constraintsAffectingLayoutForOrientation:NSLayoutConstraintOrientationHorizontal]);
}
}
You can find the code here.
After the change, my sample app, when I drag divider 0, it will pushes the middle subview rightward, maintains its width, compressing the rightmost view.
But now... I run into another problem...

Every time I move divider 0, it can only moves, at most, to the starting position of divider 1.
Is this another constraint configuration issue? Or, some other initial behavior of NSSplitView that we need to customize?
Any help/advice?
Thanks
Bill