如何为 OSX 菜单额外启用复制和粘贴

     2023-03-12     44

关键词:

【中文标题】如何为 OSX 菜单额外启用复制和粘贴【英文标题】:How to enable copy and paste for OSX menu extra 【发布时间】:2015-10-24 01:15:58 【问题描述】:

我正在用 Swift 编写一个额外的菜单,它会打开一个窗口供用户输入一些数据。为该窗口复制粘贴键盘快捷键会很方便。

我在我的额外菜单中添加了一个编辑子菜单,以便我定义键盘快捷键。我已经将它们链接到我的控制器中的方法,但是当键入诸如 command-v 之类的快捷命令时,它不会调用关联的方法。

我应该如何启用额外菜单的快捷方式?

【问题讨论】:

您用来执行此操作的代码在哪里?你不能指望我们猜出问题所在。 您的第一响应者必须实施 validatemenuitem。阅读菜单验证指南 【参考方案1】:

我不知道这是否是正确的方法,但我设法根据这篇文章中的方法让它工作: Cocoa Keyboard Shortcuts in Dialog without an Edit Menu

我创建了一个类似的 MyApplication 类,并将第一响应者的复制、粘贴等操作链接到我的菜单。

我在为最新的 swift 获取正确的语法时遇到了一些麻烦。这是我使用的代码:

import Cocoa

class MyApplication: NSApplication 
    override func sendEvent(event: NSEvent) 
        if event.type == NSEventType.KeyDown 

            if ((event.modifierFlags.rawValue) & (NSEventModifierFlags.CommandKeyMask.rawValue) > 0) 
                switch event.charactersIgnoringModifiers!.lowercaseString 
                case "x":
                    if NSApp.sendAction(Selector("cut:"), to:nil, from:self)  return 
                case "c":
                    if NSApp.sendAction(Selector("copy:"), to:nil, from:self)  return 
                case "v":
                    if NSApp.sendAction(Selector("paste:"), to:nil, from:self)  return 
                case "z":
                    if NSApp.sendAction(Selector("undo:"), to:nil, from:self)  return 
                case "a":
                    if NSApp.sendAction(Selector("selectAll:"), to:nil, from:self)  return 
                default:
                    break
                
            
        
        return super.sendEvent(event)
    

【讨论】:

如何为特定目录或文件启用特定 gcc 警告? [复制]

】如何为特定目录或文件启用特定gcc警告?[复制]【英文标题】:Howtoenableaspecificgccwarningsforaspecificdirectoryorfile?[duplicate]【发布时间】:2011-06-1511:24:00【问题描述】:可能重复:SelectivelydisableGCCwarningsforonlypartofatranslationunit?如何为... 查看详情

WPF 在列表框中启用突出显示、复制和粘贴

...发布时间】:2019-01-1114:07:55【问题描述】:我有一个要在菜单上显示的字符串列表。我使用了一个列表框,它的工作原理是它不会让我突出显示或复制/粘贴。这是我的XAML<Grid><Grid.ColumnDefinitions><ColumnDef 查看详情

在 UILabel 上显示 iPhone 剪切复制粘贴菜单

】在UILabel上显示iPhone剪切复制粘贴菜单【英文标题】:ShowiPhonecutcopypastemenuonUILabel【发布时间】:2010-11-1718:53:38【问题描述】:我们能否像UITextField一样为UILabel启用剪切复制粘贴菜单?如果没有,我需要将我的UILabel转换为UITextFi... 查看详情

如何为现有的本地集群配置和启用 Azure Service Fabric 反向代理?

】如何为现有的本地集群配置和启用AzureServiceFabric反向代理?【英文标题】:HowtoconfigureandenableAzureServiceFabricReverseProxyforanexistingon-premisescluster?【发布时间】:2016-12-1706:54:26【问题描述】:AzureServiceFabric反向代理是否在本地集群... 查看详情

如何为我现有的 python 环境(OSX)设置 Spyder 4

】如何为我现有的python环境(OSX)设置Spyder4【英文标题】:HowtosetSpyder4formyexistingpythonenvironment(OSX)【发布时间】:2021-06-0110:04:14【问题描述】:我是python编码的新手,我正在使用OSX。我使用Brew安装了Python3.9和openpyxl(如果我理解... 查看详情

如何为 Handsontable 创建动态列?

】如何为Handsontable创建动态列?【英文标题】:HowtocreatedynamiccolumnsforHandsontable?【发布时间】:2013-04-1715:15:38【问题描述】:我正在使用Handsontable创建一个可以在web和excel之间复制/粘贴的web网格,我尝试使用下面的代码,它工作... 查看详情

如何为主页和其他页面创建不同的菜单?

】如何为主页和其他页面创建不同的菜单?【英文标题】:HowcanIcreatedifferentmenusforhomeandfortheotherpages?【发布时间】:2017-02-2602:15:00【问题描述】:我需要创建不同的菜单。主页的一个菜单和其他页面和帖子的另一个菜单。以下是... 查看详情

如何为 AWS 中的成本和使用数据启用每小时粒度?

】如何为AWS中的成本和使用数据启用每小时粒度?【英文标题】:HowtoenablehourlygranularityforcostandusagedatainAWS?【发布时间】:2020-10-1007:41:02【问题描述】:我正在尝试调用AWS的get-cost-and-usageapi来生成每小时报告。但是,我在启用仅... 查看详情

如何在vmware中启用主机和虚拟机之间的复制粘贴,虚拟机是ubuntu [关闭]

】如何在vmware中启用主机和虚拟机之间的复制粘贴,虚拟机是ubuntu[关闭]【英文标题】:Howtoenablecopypastefrombetweenhostmachineandvirtualmachineinvmware,virtualmachineisubuntu[closed]【发布时间】:2015-06-2106:38:18【问题描述】:我正在尝试从我的... 查看详情

text在网页上启用右键单击和复制粘贴(代码片段)

查看详情

在 UITextField 上启用复制和粘贴而不使其可编辑

】在UITextField上启用复制和粘贴而不使其可编辑【英文标题】:EnablecopyandpasteonUITextFieldwithoutmakingiteditable【发布时间】:2009-12-1709:40:35【问题描述】:我希望UITextField(或者理想情况下是UILabel)中的文本不可编辑,但同时让用户... 查看详情

如何为单元格添加额外的字幕

】如何为单元格添加额外的字幕【英文标题】:Howtoaddextrasubtitlestocelll【发布时间】:2011-10-2110:16:43【问题描述】:有什么方法可以让我在cell.textLabel下方添加一个字幕,并在右侧添加一个标签“8个粉丝”,如下所示?我的理解... 查看详情

如何为 :before 和 :after 伪元素启用 -webkit-animation/transition-property?

】如何为:before和:after伪元素启用-webkit-animation/transition-property?【英文标题】:Howtoenable-webkit-animation/transition-propertyfor:beforeand:afterpseudoelements?【发布时间】:2011-04-2018:48:31【问题描述】:如何为:before和:after伪元素启用-webkit-animat... 查看详情

如何为 OSX Mountain Lion 上的应用程序设置环境变量?

】如何为OSXMountainLion上的应用程序设置环境变量?【英文标题】:HowtosetenvironmentvariablestoanapplicationonOSXMountainLion?【发布时间】:2012-08-2307:44:31【问题描述】:自从升级到OSXMountainLion后,我在为eclipse和maven设置环境变量时遇到了... 查看详情

macOS 上的 SwiftUI:如何为 onDelete 启用 UI(从列表中删除)

】macOS上的SwiftUI:如何为onDelete启用UI(从列表中删除)【英文标题】:SwiftUIonmacOS:HowtoenableUIforonDelete(deletionfromList)【发布时间】:2020-01-1608:05:54【问题描述】:也许我今天早上特别密集,但我试图在macOS上的SwiftUI中从List中删除... 查看详情

在显示之前将动态自定义 UIMenuItem 添加到复制和粘贴菜单

】在显示之前将动态自定义UIMenuItem添加到复制和粘贴菜单【英文标题】:AddingadynamiccustomUIMenuItemtoCopy&PasteMenubeforeitshows【发布时间】:2010-10-1214:16:16【问题描述】:我已经成功地将自定义UIMenuItem添加到我的iPhone应用程序的复... 查看详情

如何为 iPhone 6 和 6 Plus 上的应用启用原生分辨率?

】如何为iPhone6和6Plus上的应用启用原生分辨率?【英文标题】:HowtoenablenativeresolutionforappsoniPhone6and6Plus?【发布时间】:2014-11-0311:36:52【问题描述】:Xcode6GM现在包含适用于iPhone6和6Plus的模拟器,默认情况下它们以缩放模式运行应... 查看详情

如何为 bxslider 启用键盘导航?

】如何为bxslider启用键盘导航?【英文标题】:Howtoenablekeyboardnavigationforbxslider?【发布时间】:2013-12-2101:24:26【问题描述】:我正在使用bxslider并添加了两个名为#slider-next和#slider-prev的按钮。鼠标点击事件工作得很好——当点击下... 查看详情