Добавление вторичного текста в строку заголовка окна в Какао? - PullRequest
7 голосов
/ 30 сентября 2010

Я надеялся выпустить свое программное обеспечение с пробным периодом, и мне было интересно, как я могу показать ссылку в правой части строки заголовка, сообщающую им, как долго будет продолжаться их испытание:What Coda Does.

У кого-нибудь есть предложения?

1 Ответ

10 голосов
/ 30 сентября 2010

Вы можете получить суперпредставление содержимого окна и добавить к нему настраиваемое представление. Просто убедитесь, что вы правильно позиционируете свое мнение. Вот пример кода:

NSView *frameView = [[window contentView] superview];
NSRect frame = [frameView frame];

NSRect otherFrame = [otherView frame];
otherFrame.origin.x = NSMaxX( frame ) - NSWidth( otherFrame );
otherFrame.origin.y = NSMaxY( frame ) - NSHeight( otherFrame );
[otherView setFrame: otherFrame];

[frameView addSubview: otherView];

Здесь otherView - это представление, которое вы хотите разместить в строке заголовка. Этот код не будет работать, хотя, если есть кнопка на панели инструментов - они будут перекрываться. К счастью, есть API для получения кнопки на панели инструментов, чтобы вы могли рассчитать позицию:

NSButton *toolbarButton = [window standardWindowButton: NSWindowToolbarButton];
otherFrame.origin.x = NSMinX( [toolbarButton frame] ) - NSWidth( otherFrame );

Вы также должны убедиться, что маски автоматического изменения размера для вашего вида установлены так, чтобы они оставались в верхнем правом углу окна:

[otherView setAutoresizingMask:NSViewMinXMargin | NSViewMinYMargin];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...