如何显示类似 NSTextView 的上下文菜单
How to show NSTextView-like context menu
我想每次都为某个 NSString
对象(例如 "text")显示类似 NSTextView 的上下文菜单 -rightMouseDown
-我自定义的方法 NSResponder
-子类被调用。
我在哪里可以得到一些 NSString
的这些物品?
UPD
创建了 NSTextView
实例并使用了它的 -menuForEvent:
方法。有些项目被禁用(如 'copy' 等),我将其目标值重置为具有覆盖选择器的自定义对象(如 -copy:
等)。
NSTextView
是一个 NSView
子类,provides a class method +defaultMenu
。因此,您可以要求 NSMenu * menu = [NSTextView defaultMenu];
获得您自己的副本,随心所欲。您可能需要遍历其结构并自定义单个 NSMenuItem
实例以调整它们的 target/action 但大多数(全部?)应该与 nil-target(向第一响应者发送操作)及其默认操作一起正常工作。
不过,我必须承认,我不确定你所说的 "Where can I obtain these items for some NSString
?" 上下文菜单是从某些 UI 控件(如文本视图)打开并发送其操作(如-checkSpelling...
) 到某个目标(如第一响应者;它应该是文本视图之类的东西,充当字符串或属性字符串的视图)以进行操作。
我想每次都为某个 NSString
对象(例如 "text")显示类似 NSTextView 的上下文菜单 -rightMouseDown
-我自定义的方法 NSResponder
-子类被调用。
我在哪里可以得到一些 NSString
的这些物品?
UPD
创建了 NSTextView
实例并使用了它的 -menuForEvent:
方法。有些项目被禁用(如 'copy' 等),我将其目标值重置为具有覆盖选择器的自定义对象(如 -copy:
等)。
NSTextView
是一个 NSView
子类,provides a class method +defaultMenu
。因此,您可以要求 NSMenu * menu = [NSTextView defaultMenu];
获得您自己的副本,随心所欲。您可能需要遍历其结构并自定义单个 NSMenuItem
实例以调整它们的 target/action 但大多数(全部?)应该与 nil-target(向第一响应者发送操作)及其默认操作一起正常工作。
不过,我必须承认,我不确定你所说的 "Where can I obtain these items for some NSString
?" 上下文菜单是从某些 UI 控件(如文本视图)打开并发送其操作(如-checkSpelling...
) 到某个目标(如第一响应者;它应该是文本视图之类的东西,充当字符串或属性字符串的视图)以进行操作。