我想通过工具栏中的NSToolbarItem按钮显示NSPopover。
(即位于按钮下方)。
理想情况下,我希望将按钮的NSView传递给popover来定位它。
我的问题是,如何获得NSToolbarItem的NSView
[toolbarbutton view]总是返回nil。
发布于 2011-11-20 03:20:13
答案似乎在2011年WWDC会议113的视频中,“全屏和水的变化。”基本上,将一个NSButton放在NSToolbaritem中并使用它的视图。
这里有一篇博客文章:http://www.yellowfield.co.uk/blog/?p=33,在http://github.com/tevendale/ToolbarPopover的github上有一个示例项目
这一切都体现了http://xkcd.com/979的精神!
发布于 2012-02-25 00:57:28
您可以直接从封装在NSToolbarItem中的NSButton发送操作(这是您通常应该做的,请考虑分段控件,其中每个段都有自己的目标/操作),这将完成任务。
发布于 2013-01-21 14:41:43
将IBOutlet直接连接到工具栏项并使用它来获取相对视图,而不是从IBAction发送者那里获取视图:
在您的头文件中:
@property (weak) IBOutlet NSToolbarItem *theToolbarItem;
@property (weak) IBOutlet NSPopover *thePopover;在您的实现文件中,显示弹出窗口:
[self.thePopover showRelativeToRect:[[self.theToolbarItem view] bounds] ofView:[self.theToolbarItem view] preferredEdge:NSMinYEdge];这也适用于在工具栏项内显示菜单项选择的弹出窗口。
https://stackoverflow.com/questions/8142791
复制相似问题