I just checked the documentation and did not see NSSegmentStyleSeparated in the 
list of NSSegmentStyle enums. Here is the list:

enum {
        NSSegmentStyleAutomatic = 0,
        NSSegmentStyleRounded = 1,
        NSSegmentStyleTexturedRounded = 2,
        NSSegmentStyleRoundRect = 3,
        NSSegmentStyleTexturedSquare = 4,
        NSSegmentStyleCapsule = 5,
        NSSegmentStyleSmallSquare = 6,
        NSSegmentStyleSeparated = 8,
};

I would be willing to bet that  the method that is asserting is checking to 
make sure that the segment style is one of the nine that are defined in the 
list of enums. The fact that it only does that check when using auto layout 
seems like a bug to me. I’d file a bug with Apple.

Thaddeus O. Cooper
(tcoo...@nomoreboxes.com)



> On Aug 26, 2015, at 6:38 AM, Jacek Oleksy <jole...@opera.com> wrote:
> 
> Nope, I am still getting the exception.
> 
> J.
> 
> On Wed, Aug 26, 2015 at 3:31 PM, Ken Thomases <k...@codeweavers.com> wrote:
>> On Aug 26, 2015, at 7:04 AM, Jacek Oleksy <jole...@opera.com> wrote:
>> 
>>> I want to set NSSegmentStyleSeparated on my NSSegmentedControl
>>> (managed by autolayout). However, when I create constraints for the
>>> parent view, I get an exception:
>>> 
>>> Assertion failure in -[NSSegmentedControl ns_widgetType],
>>> /SourceCache/AppKit/AppKit-1348.17/Layout.subproj/NSUserInterfaceTheme.m:398
>>> 
>>> An uncaught exception was raised
>>> What kind of segmented control are we!
>>> 
>>> Example code:
>>> 
>>> (in WindowController)
>>> - (void)windowDidLoad {
>>>   [super windowDidLoad];
>>>   NSSegmentedControl* segmentedControl = [[NSSegmentedControl alloc] init];
>>>   [segmentedControl setSegmentCount:2];
>>>   [segmentedControl setTranslatesAutoresizingMaskIntoConstraints:NO];
>>>   segmentedControl.segmentStyle = NSSegmentStyleSeparated;
>>>   [self.window.contentView addSubview:segmentedControl];
>>>   NSString* constraint = @"|-[segmentedControl]-|";
>>>   NSDictionary* views = NSDictionaryOfVariableBindings(segmentedControl);
>>>   NSArray* constraints = [NSLayoutConstraint
>>>                           constraintsWithVisualFormat:constraint
>>>                           options:NSLayoutFormatDirectionLeadingToTrailing
>>>                           metrics:nil
>>>                           views:views];
>>>   [self.window.contentView addConstraints:constraints];
>>> }
>>> 
>>> The exception is raised in "addConstraints:".
>>> Everything is fine if I do not change segmentStyle. It also works fine
>>> if I change segment style *after* adding constraints, but then I get
>>> the exception e.g. when dragging window to external display.
>>> 
>>> Any ideas?
>> 
>> This is a shot in the dark, but: does it help to initialize with 
>> -initWithFrame: instead of -init?  (You can pass NSZeroRect.)
>> 
>> Regards,
>> Ken
>> 
> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/tcooper%40nomoreboxes.com
> 
> This email sent to tcoo...@nomoreboxes.com
> 


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to