2019独角兽企业重金招聘Python工程师标准>>>

动手自己写一个 xcode插件  (暂时需要注释功能,所以简单的写一个注释插件)

-----Xcode Source Editor Extensions-----


插件是可以在Xcode的Preferences的Key Bindings中设置快捷键的


-----------------------------------------------------------------------

开始:

1:创建Project,并且选中OS X - Application - Cocoa Application,

就像穿件一个iOS 项目和其他插件(today,share,action.....)等等一样的关系,

2:添加Target,选择OS X - Application Extensions - Xcode Source Editor Extension

这样就创建了插件,并生成了两个(默认名称为SourceEditorCommand,SourceEditorExtension)

这里名称是可以改的,改了之后只需要在Target的info.plist中修改

XCSourceEditorCommandClassName 对应 SourceEditorCommand

XCSourceEditorExtensionPrincipalClass 对应 SourceEditorExtension

我们看到XCSourceEditorCommandDefinitions这个数组

这个地方就是这个插件所有的功能配置的地方,使用XCSourceEditorCommandIdentifier区分

我们主要撰写的代码在SourceEditorCommand中,需要运行插件的时候,会回调

- (void)performCommandWithInvocation:(XCSourceEditorCommandInvocation *)invocation completionHandler:(void (^)(NSError * _Nullable nilOrError))completionHandler

{

completionHandler(nil);

}

这个XCSourceEditorCommandInvocation *invocation中就有我们需要的全部信息,选择了哪一行,那一列,内容,等等等等

运行效果如上,选择两个功能的时候,使用

NSString *identifier = invocation.commandIdentifier;

来区分identifier是哪一个XCSourceEditorCommandIdentifier以调取不同的功能代码


-----------------------------------------------------------------------

Demo 下载地址(Github):

WTxcodeToolBox (注释功能)https://github.com/wintelsui/WTxcodeToolBox.git

其他项目-插件源码

App Store:https://itunes.apple.com/cn/app/myutils/id1457192526?mt=12

Github:  https://github.com/wintelsui/MyUtilsForXcode

-----------------------------------------------------------------------

转载于:https://my.oschina.net/wintelsui/blog/3051865

动手自己写一个 xcode 插件(Xcode Source Editor Extensions)附源码相关推荐

  1. 【博主推荐】HTML制作一个美观的个人简介网页(附源码)

    文章目录 HTML制作一个美观的个人简介网页 模块1(个人信息)示例图 模块2(基本资料)示例图 模块3(项目经验)示例图 模块4(专业技能)示例图 模块5(工作经历)示例图 模块6(自我评价)示例图 ...

  2. c语言跳一跳辅助源码,.NET 开发一个微信跳一跳辅助程序(附源码)

    原标题:.NET 开发一个微信跳一跳辅助程序(附源码) 来源:中国.NET研究协会 cnblogs.com/dotnet-org-cn/p/8149693.html 前言 微信更新了,出现了一个小游戏 ...

  3. React全家桶写一个CNode社区,奉上心得与源码

    webpack2+react+react-router+react-redux+ES6+antd-mobile版本的Cnode 苦于我就职的公司的技术栈还是ES5+jQ+handelbars, 而我一 ...

  4. html百分比代码怎么写,参考Bootstrap写的一个带百分比的进度条(附源码)

    最近需要写一个进度条的效果,网上找了一些,但都不能完美的实现需求. 于是就自己改造了一个,效果如下图: 因为动态图太大,我上传到 GitHub 了,就不在博客上再上传了. 百分比跟随进度条移动,百分比 ...

  5. c++贪吃蛇_细致的C语言写贪吃蛇教程+详细思路-适合新手附源码

    在有用C写贪吃蛇的一个想法之后,上网查了几个教程,觉得不是很能看懂.恩...或者说不是一下子就能看出来思路+具体怎么实现.所以,我花了早自习的时间想了想如何用最简单的方法实现,晚上大约两个小时写了出来 ...

  6. c语言写贪吃蛇什么水平_细致的C语言写贪吃蛇教程+详细思路-适合新手附源码...

    #史上最详细的C语言贪吃蛇教程 #前言 在有用C写贪吃蛇的一个想法之后,上网查了几个教程,觉得不是很能看懂.恩...或者说不是一下子就能看出来思路+具体怎么实现.所以,我花了早自习的时间想了想如何用最 ...

  7. 从0到1搭建一个简易的在线客服问答系统(附源码)

    前言 首先我们先了解下这个概念,什么叫做问答系统(Question Answering System,简称 QA 系统)? 其实问答系统是一个比较常见的系统,在医疗系统/电商系统/零售业等等行业中都比 ...

  8. QQ空间日志抓器---我的第一个winform小应用(多线程,附源码)

    http://www.cnblogs.com/think_fish/archive/2011/06/09/2076836.html (好几个博友都提到了假死的问题,可能是我之前测试的环境网络状态良好, ...

  9. 用python写的代码输入助手小程序(附源码)

    目录 运行: 使用: 添加: 编辑: 创建新的空数据库: 命令太多,很容易忘记,还有很多代码片段想保存下来用到的时候能够快速输入,提高开发效率.在网上找了很多,发现都不是自己想要的.于是就用pytho ...

最新文章

  1. 网站导航栏如何设置更利于提升SEO优化效果?
  2. 服务器弱口令修改,Tomcat服务器弱口令漏洞攻击实验
  3. iOS开发 简述使用OCUnit对程序进行单元测试(UnitTest)
  4. python3数据类型:Dictionary(字典)
  5. OpenShift 4 - 对镜像进行合规扫描,加固应用镜像安全
  6. hdu 2119(最大匹配)
  7. php 正则 修饰符,php 正则修饰符
  8. Vue全家桶 之 KTV前台收银管理系统 (不想努力啦,回家收钱去)
  9. 浙大PAT甲级-1004
  10. word里双横线怎么打_word怎么加双下划线
  11. C语言和设计模式-工厂方法
  12. turtle---见证小海龟的浪漫之画
  13. Matlab:实现绘制启动超音速风洞的稳定条件(附完整源码)
  14. 蝶梦,五种架构演变史
  15. 青鸟迷你游戏平台:游戏点击率
  16. jQuery:模拟购物车
  17. 无线“蹭网卡”热卖 任意密码5分钟破解
  18. vlan工作原理解析
  19. 中国剩余定理与线性同余方程组求解
  20. 测试人生 | 从小团队的业务到独角兽的测开,涨薪超过60%,90后小凤凰涅槃了

热门文章

  1. PC问题-该虚拟机似乎正在使用中
  2. python 在 eclipse 上的编码配置问题
  3. 用C语言打开文件的几种方式及区别
  4. [译] Service workers:PWA应用背后的英雄
  5. 思科中国创新中心总部正式落户广州
  6. EMC与地之重新认识地
  7. HDU5726 GCD(rmq+二分)
  8. Gil Zilberfeld问答:敏捷产品的规划与管理
  9. Servlet登陆功能的实现
  10. MongoDB 访问控制