如何显示类似NSTextView的上下文菜单

时间:2015-06-23 09:28:24

标签: macos cocoa contextmenu nstextview appkit

我希望每次NSString - 我的自定义-rightMouseDown方法为某个NSResponder对象(例如"文字")提供类似NSTextView的上下文菜单-subclass被调用。

enter image description here

我在哪里可以获得某些NSString的这些项目?

UPD

创建NSTextView实例并使用其-menuForEvent:方法。有些项目已被停用(例如' copy'依此类推),我将其目标值重置为自定义对象,并使用重写的选择器(如-copy:等)。

1 个答案:

答案 0 :(得分:4)

NSTextViewNSView子类,provides a class method +defaultMenu。因此,您可以要求NSMenu * menu = [NSTextView defaultMenu];随意获取您自己的副本。您可能必须遍历其结构并自定义单个NSMenuItem实例以调整其目标/操作,但大多数(全部?)应该可以正常使用nil-target(向第一响应者发送操作)及其默认操作。

我必须承认,但是,我不确定你的意思是“我在哪里可以获得某些NSString的这些物品?”从某些UI控件(如文本视图)打开上下文菜单,并将其操作(如-checkSpelling...)发送到某个目标(如第一个响应者;它应该像文本视图一样充当视图用于字符串或属性字符串)。