我正在尝试制作我的第一个Cocoa应用程序(以前我是在制作iOS应用程序),而我希望为自定义视图做的是使其标题可点击,指示器(附件)三角形朝下。
单击标题将打开一个包含我的物品的弹出式菜单。
在可可粉中怎么做到的?
最佳答案
Rdelmar's answer可能是最简单的方法,但可能并没有完全按照您的意愿进行操作(即用弹出项目代替实际标题,而不是在工具栏区域的标题下有一个弹出按钮)。在功能方面,您的应用程序可能会使用工具栏同样有效。
但是,如果您确实要替换实际标题,则解决方法是将NSWindow
标题文本设置为@""
以将其隐藏,然后通过保留在自己的视图中来重绘它。
[[[theWindow contentView] superview] addSubview:theSubview];
这基本上告诉主内容视图的超级视图添加另一个子视图(从代码中直接进行“翻译”),并且您必须修改此新子视图的框架,以将其放置在标题应放置的位置(因为现在它可以自由地放置在窗口框架中的任何位置,包括标题栏的顶部,而不是仅仅放置在内容视图的内部。
theSubview
可以是您的弹出按钮,也可以是您想要的任何按钮,您可能还必须自定义绘制弹出按钮以匹配窗口标题的原始图形。关于macos - NSWindow的标题作为指示器弹出按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10868715/