开发者

Adding a toolbar to INAppStoreWindow

开发者 https://www.devze.com 2023-03-24 13:14 出处:网络
I\'m trying to add a toolbar to INAppStoreWindow. It has this property: /** The title bar view itself. Add subviews to this view that you want to show in

I'm trying to add a toolbar to INAppStoreWindow.

It has this property:

/** The title bar view itself. Add subviews to this view that you want to show in
 the title b开发者_如何学运维ar (e.g. buttons, a toolbar, etc.). This view can also be set if 
you want to use a different styled title bar aside from the default one 
(textured, etc.). **/

@property (nonatomic, retain) NSView *titleBarView;

I have a toolbar created, and linked to an outlet in my code, but how can I add it as a subview if it has a class of NSToolbar, when it requires a NSView?

This throws an exception: [aWindow.titleBarView addSubview:toolbar];

Many thanks in advance


INAppStoreWindow weasels that titleBarView between the window's widgets and the content view:

INAppStoreWindow.m:

- (void)setTitleBarView:(NSView *)newTitleBarView
{
if ((_titleBarView != newTitleBarView) && newTitleBarView)  {
    [_titleBarView removeFromSuperview];
    [_titleBarView release];
    _titleBarView = [newTitleBarView retain];

    // Configure the view properties and add it as a subview of the theme frame
    NSView *contentView = [self contentView];
    NSView *themeFrame = [contentView superview];
    NSView *firstSubview = [[themeFrame subviews] objectAtIndex:0];
    [_titleBarView setAutoresizingMask:(NSViewMinYMargin | NSViewWidthSizable)];
    [self _recalculateFrameForTitleBarView];
    [themeFrame addSubview:_titleBarView positioned:NSWindowBelow relativeTo:firstSubview];
    [self _layoutTrafficLightsAndContent];
    [self display];
    }
}

NSToolbar isn't an NSView subclass, it's meant to work in conjunction with the window itself, which is obscured by the titleBarView. Just for kicks, set alphas of the gradient colors in INAppStoreWindow.m and run the app; you'll can see the "real" window is still there underneath.

If you're set on using INAppStoreWindow, your best bet would probably be to use your own custom view with buttons to fake a toolbar and adding that as a subview of the titleBarView. Of course, in that case you'll have to do all the layout yourself.

0

精彩评论

暂无评论...
验证码 换一张
取 消