Добавление панели инструментов в INAppStoreWindow - PullRequest
0 голосов
/ 30 июля 2011

Я пытаюсь добавить панель инструментов в INAppStoreWindow.

Имеет это свойство:

/** The title bar view itself. Add subviews to this view that you want to show in
 the title bar (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;

У меня есть панель инструментов, созданная и связанная с выходом в моем коде, но как я могу добавить ее в качестве подпредставления, если у него есть класс NSToolbar, когда для него требуется NSView?

Это исключение: [aWindow.titleBarView addSubview:toolbar];

Большое спасибо заранее

1 Ответ

2 голосов
/ 30 июля 2011

INAppStoreWindow ласкает, что titleBarView между виджетами окна и представлением содержимого:

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 не является подклассом NSView, он предназначен для работы в сочетании с самим окном, которое скрыто titleBarView.Просто для удовольствия установите альфа цвета градиента в INAppStoreWindow.m и запустите приложение;вы увидите, что «настоящее» окно все еще там внизу.

Если вы настроены на использование INAppStoreWindow, лучше всего было бы использовать собственный настраиваемый вид с кнопками для имитации панели инструментов.и добавив это как подпредставление titleBarView.Конечно, в этом случае вам придется делать все макет самостоятельно.

...