【发布时间】:2013-06-04 03:38:30
【问题描述】:
我有一个基于文档的应用程序。我想添加一个上下文菜单,当用户右键单击 NSTextView 中的选定文本时显示上下文相关信息。
我已按照Apple documentation 中的建议和
- 在我的 XIB 文件中添加了一个 NSMenu 作为根对象。
- 将 NSMenu 实例连接到 NSTextView 的
menu出口。 - 将 IBAction 连接到 NSMenu 内的 NSMenuItem。
到目前为止一切顺利。一切都按预期工作:出现菜单项,并在选择它时调用该操作。
我需要在菜单出现之前从 NSTextView 获取选定的文本,以便我可以适当地配置我的菜单项。根据文档
如果您需要自定义上下文菜单,您可以通过设置 一个适当的对象作为菜单的委托并实现 menuWillOpen:根据您之前认为合适的方式自定义菜单的方法 它出现了。
我将 NSMenu 的代表连接到文件的所有者。没有调用任何委托方法。 (menuWillOpen: 是我唯一需要的,但我也尝试过其他的)。
我在选择菜单项时调用的 IBAction 内设置了一个断点。如果我使用调试器检查菜单,我可以看到委托已正确设置为实现委托方法的对象。
还有什么要检查的吗?我做错了什么?
Xcode v4.6.3
SDK v10.8
部署目标 10.7
【问题讨论】: