In my NSSegmentedControl category, I have a method to solve this problem:
@interface NSSegmentedControl (BorkwareAdditions)
- (void) unselectAllSegments;
// ... other goodies
@end // NSSegmentedControl
- (void) unselectAllSegments
{
NSSegmentSwitchTracking current;
current = [self trackingMode];
[self setTrackingMode: NSSegmentSwitchTrackingMomentary];
int i;
for (i = 0; i < [self segmentCount]; i++) {
[self setSelected: NO forSegment: i];
}
[self setTrackingMode: current];
} // unselectAllSegments