Xcode 接口命令
让 XIB 执行命令行
简介
- Xcode 接口命令的独特功能是通过 XIB 文件适配夜间模式。用户在 XIB 文件上使用指定格式时将触发特殊功能,这种格式类似于命令行。因为是面向接口的编程,所有开发人员都可以轻松添加插件以支持更多功能。支持iOS为主,macOS为辅。项目使用objective-c或者swift皆为无恙。本项目采用动态加载插件,故不依赖其他三方。请使用cocoapods或其他方法导入三方以支持指定插件的功能。
Xcode 接口命令 的独特功能是通过 XIB 文件适配 夜间模式,用户在 XIB 文件上使用指定格式时将触发特殊功能,这种格式类似于命令行。因为是面向接口的编程,所有开发人员都可以轻松添加插件以支持更多功能。支持iOS为主,macOS为辅。项目使用objective-c或者swift皆为无恙。本项目采用动态加载插件,故不依赖其他三方。请使用cocoapods或其他方法导入三方以支持指定插件的功能。
如何解决Xcode内置可视化编程手段不足的痛点?
- XIC使用IBOutlet作为命令行来扩展XIC的编辑项。就像命令行是与命令相对应的程序一样,命令下级有多个选项。XIC是一个与命令相对应的插件,命令下级也有多个选项。因此,XIC的功能可扩展性是无限的。
如何解决Xcode内置可视化编程手段不足的痛点?
XIC将IBOutlet天马行空地用作命令行来扩展XIC的编辑项。正如命令行是一种程序对应一种命令,命令下级有多个选项。XIC是一种与命令相对应的插件,命令下级有多种选项。因此,XIC的功能扩展性是无限制的。
CocoaPods
pod 'XICommand'
用法
窗口命令案例
- 选择控件或控制器
- 打开:Xcode→属性检查器(
Option + Command + 0
) - 输入命令至CMDWindow
连线命令案例
objective-c
//Support for dark mode(DKNightVersion plug-ins).适配夜间模式。
● @property (weak, nonatomic) IBOutlet UILabel *dkdo_bg_0XFFFFFF_0X000000;
//Set border color and border width.设置边框颜色和宽度。
● @property (weak, nonatomic) IBOutlet UIButton *sudo_border_0XCCCCCC_1p5;
swift
//Support for dark mode(DKNightVersion plug-ins).适配夜间模式。
● @IBOutlet weak var dkdo_bg_0XFFFFFF_0X000000: UILabel!
//Set border color and border width.设置边框颜色和宽度。
● @IBOutlet weak var sudo_border_0XCCCCCC_1p5: UIButton!
命令规则
- 基本规则 : 命令 + option + 参数;(基本规则)
- 参数是可选的;
- 窗口命令规则:使用空格连接每个项目;
- sudoCorner 5.00
- dkdo bg 0XF2F2F2 2E2E2E 0xeCeCeC
- IBOutlets 规则:使用
_
连接每个项目;- sudo_corner_5p00
- dkdo_bg_0XF2F2F2_2E2E2E_0xeCeCeC
- 窗口命令规则:使用空格连接每个项目;
文档
XICDocument.h
文件提供所有API查询,开发者也可以通过xcode获取API提示。
XICDocument.h
文件提供所有API查询,开发者也可以通过编码提示查询API。
DKNightVersion 插件使用(使用插件)
- 支持暗黑模式。目前此功能由 DKNightVersion 提供,所以首先需要导入。
(当前适配夜间模式功能由 DKNightVersion 提供,使用前请导入。)
默认插件使用(默认插件)
- 项目默认插件提供较少的功能。
常见问题(常见问题)
- 在 CMD 窗口中输入换行?
Option + Return
(也支持 "Ctrl + Return") - 数字格式?:字母 'p' 代替小数点 '.'(字母'p'代替小数点'.')
- 3.14 -> 3p14
- 颜色格式?(颜色格式):十六进制颜色值,十六进制颜色值,“0X”前缀是可选的,大小写都支持。
- 如何解决连线命名重复问题?(如何解决命名重复问题?)
- 添加多余的下划线可避免命名重复:sudo_...选项;
- 使用
IBOutletCollection
进行控件连接。
- 如何重命名IBOutlet或IBOutletCollection?(如何重命名连线?)
- 在头文件中导航到IBOutlet。@property (weak, nonatomic) IBOutlet UIButton *btnRequestCode;
- 在IBOutlet上右键,选择“重构 > 重命名...
- 更改IBOutlet的名称。
- 选择“重命名”按钮或按下Enter键。
- 对程序性能的影响?(对程序性能的影响?)
- 影响几乎不可见。
- 高性能缓存决定时间复杂度为O(1)。
- 函数调用栈经过优化。
开发新插件
请助力开源项目XIC
- 请
fork
和star
此项目。(请fork和star) - 向此项目输出开源代码,为
XIB
提供神奇的功能。 - 推送你的开源代码。
- 有任何问题和反馈,请在github推送issue。