XICommand 1.0.1

XICommand 1.0.1

Novo 维护。



XICommand 1.0.1

  • -meterwhite

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'

用法

窗口命令案例

  1. 选择控件或控制器
  2. 打开:Xcode→属性检查器(Option + Command + 0
  3. 输入命令至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?(如何重命名连线?)
    1. 在头文件中导航到IBOutlet。@property (weak, nonatomic) IBOutlet UIButton *btnRequestCode;
    2. 在IBOutlet上右键,选择“重构 > 重命名...
    3. 更改IBOutlet的名称。
    4. 选择“重命名”按钮或按下Enter键。
  • 对程序性能的影响?(对程序性能的影响?)
    • 影响几乎不可见。
    • 高性能缓存决定时间复杂度为O(1)。
    • 函数调用栈经过优化。

开发新插件

  1. 在'XICProtocols.h'文件中实现所有协议。
  2. 编辑'XICDocument.h'文件以补充接口文档。(在XICDocument.h补充接口文档)

请助力开源项目XIC

  1. forkstar此项目。(请fork和star)
  2. 向此项目输出开源代码,为XIB提供神奇的功能。
  3. 推送你的开源代码。
  4. 有任何问题和反馈,请在github推送issue。