gpt4 book ai didi

cocoa - 如何将自定义项添加到 Cocoa 中 NSTextField 的上下文菜单中?

转载 作者:行者123 更新时间:2023-11-28 11:22:43 25 4
gpt4 key购买 nike

当用户调用 NSTextField 的上下文菜单时,Cocoa 会显示一个包含常用标准项目的菜单。我可以将自己的项目添加到该菜单吗?如果可以,如何添加?

顺便说一句,我正在使用 Swift。谢谢。

最佳答案

您需要干预用于文本字段的字段编辑器。文本字段不直接处理其内容的编辑。他们使用 TextView (NSTextView 的实例或子类)来执行此操作。该 TextView 称为字段编辑器。

TextView 可以有一个委托(delegate),该委托(delegate)可以实现方法 -textView:menu:forEvent:atIndex: 来自定义上下文菜单。问题是,当 TextView 作为字段编辑器运行时,它的委托(delegate)始终是它所代表的控件。因此,您不能将自己的任意对象(例如某些窗口或 View Controller )设置为它的委托(delegate)。

因此,您必须使用 NSTextField 的自定义子类才能有机会自定义上下文菜单。在您的子类中,实现该方法并在返回之前自定义传入的菜单(如果您愿意,也可以返回一个完全不同的菜单)。

关于cocoa - 如何将自定义项添加到 Cocoa 中 NSTextField 的上下文菜单中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26025324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com