在Cocoa中向窗口标题栏添加副标题文本?

8
我希望在我的软件中发布一个试用期,并想知道如何在标题栏的右侧显示一个链接,告诉用户他们的试用期将持续多长时间,类似于这样:What Coda Does。有没有人有什么建议?

可能是在Mac OS X窗口顶部添加按钮的重复问题。 - rob mayoff
1个回答

10

您可以获得窗口内容视图的超级视图,然后将自定义视图添加到其中。只需确保正确定位您的视图即可。以下是一些示例代码:

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];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接