美文网首页Mac OS开发
mac开发系列16:复制功能的基本实现

mac开发系列16:复制功能的基本实现

作者: 悲观患者 | 来源:发表于2017-08-14 11:38 被阅读42次

mac微信中,很多地方都用到了复制功能,实现复制功能主要分为两步:1、监听复制事件;2、往粘贴板中写入要复制的内容。
1、监听复制事件主要包含两种:
1)自定义鼠标右键菜单,主要代码如下:
NSMenu *aMenu = [[NSMenu alloc] init];
NSMenuItem *aItem = [[NSMenuItem alloc] initWithTitle:itemName action:@selector(contextMenuCopy:) //copyFunction keyEquivalent:@""];[aMenu addItem:aItem];

2)键盘cmd+c,这里还包含三种实现:
2.1)mac微信左上角的自定义mainmenu.xib菜单项(只作用于微信一个app),如果有留意,会发现微信使用cmd+c复制时,“编辑”会闪一下,如下:



2.2)利用MASShortcut第三方快捷键插件,注册监听cmd+c,这是针对系统的,即不止对微信一个app起作用,具体实现在前面的文章有提过。
2.3)重写keydown事件,主要代码如下:

-(void)keydown:(NSEvent *)theEvent {
if ((theEvent.modifierFlags & NSCommandKeyMask) && (theEvent.keyCode == kVK_ANSI_C)) { // Do something when press cmd+c on keyboard }}

2、往NSPasteboard(粘贴板)中写入要复制的内容,主要代码如下:

NSPasteboard *aPasteboard = [NSPasteboard generalPasteboard]; //获取粘贴板对象[aPasteboard clearContents]; //清空粘贴板之前的内容
NSData *aData = [aStr dataUsingEncoding:NSUTF8StringEncoding];
[aPasteboard setData:aData forType:NSPasteboardTypeString]; //type有不少类型,对应的写入粘贴板的方式也不一样,可以自行研究

相关文章

  • mac开发系列16:复制功能的基本实现

    mac微信中,很多地方都用到了复制功能,实现复制功能主要分为两步:1、监听复制事件;2、往粘贴板中写入要复制的内容...

  • Mac苹果拖拽文件读取实现

    Mac 苹果拖拽文件读取实现 drag drop import file 实现的功能 在导入文件到基于Mac开发的...

  • mac开发系列28:日期选择功能实现

    聊天记录备份在mac微信上需要提供按所选时间段进行恢复的功能,这就得有一个日期选择控件,根据以前js的经验,日期插...

  • IDEA快捷键手册

    开发利器IDEA快捷键(Mac版) Mac键盘符号和修饰键说明 下面有些功能,Mac小键盘空间不足,没有单键实现,...

  • 实现复制功能

    html代码:

  • X-Code常用快捷键

    Mac中的command键类似于Windows中的Ctrl键,复制、粘贴、全选、剪切、撤销等基本功能只是将Ctrl...

  • iOS复制链接到剪贴板

    点击按钮实现复制功能

  • 高效编程记录

    遇到同一个功能点需要复用的时候,先粘贴复制实现具体功能,在基本功能实现的前提下,推荐封装到工具类、基类或者协议中,...

  • Spring IoC

    两个主要容器: 实现BeanFactory接口的简单容器系列:实现容器的最基本功能 ApplicationCont...

  • ios开发实现画板功能

    ios开发实现画板功能 ios开发实现画板功能

网友评论

    本文标题:mac开发系列16:复制功能的基本实现

    本文链接:https://www.haomeiwen.com/subject/ldfurxtx.html