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
.Конечно, в этом случае вам придется делать все макет самостоятельно.