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