NSWindow的标题为指示弹出按钮

时间:2012-06-03 07:48:58

标签: macos cocoa popup indicator nstoolbar

我正在尝试制作我的第一个Cocoa应用程序(之前我正在制作iOS应用程序),我想为自定义视图做的是让它的标题可点击,指示符(附件)三角形朝下。 单击标题将打开包含我的项目的弹出/菜单。

在Cocoa中如何做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以通过在IB中向窗口添加工具栏来执行此操作。一旦您添加工具栏,您可以双击它以打开它的自定义程序视图。将弹出按钮拖动到“允许的工具栏项目”区域,然后将其拖动到底部区域,显示工具栏的布局 - 您还可以拖出任何不需要的默认项目

答案 1 :(得分:1)

Rdelmar's answer可能是最简单的方法,但可能无法完全按照你想做的那样做(用弹出项替换实际标题,而不是在标题下有一个弹出按钮)工具栏区域)。关于功能,您的应用程序可能也可以使用工具栏。

但是,如果您真的想要替换实际的标题,那么解决此问题的方法是将NSWindow标题文本设置为@""以隐藏它,并通过粘贴重绘它你自己的观点。

[[[theWindow contentView] superview] addSubview:theSubview];

这基本上告诉超级视图主要内容视图添加另一个子视图(从代码直接“翻译”),你将不得不修改这个新子视图的框架,让它被定位在标题所在的位置定位(现在它可以自由放置在窗口框架的任何位置,包括在标题栏顶部,而不是简单地放在内容视图中)。

theSubview可以是你的弹出按钮,或任何你想要的,你也可能需要自定义绘制弹出按钮以匹配窗口标题的原始绘图。