Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建自定义;“文本宏”;在Xcode中?_Xcode_Macros - Fatal编程技术网

如何创建自定义;“文本宏”;在Xcode中?

如何创建自定义;“文本宏”;在Xcode中?,xcode,macros,Xcode,Macros,如何在Xcode中创建自定义代码完成宏。我在谷歌上搜索并找到了一些方法,但我并不完全理解它们。有人能告诉我怎么做吗 谢谢大家。有一个添加自定义文本宏的教程。以下是教程指定的为Objective-C创建自定义文本宏的必要步骤 转到您的Xcode应用程序文件(root/Developer/Applications/)。 右键单击(控制单击)并显示包内容。 导航到(Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources/)。 选择Object

如何在Xcode中创建自定义代码完成宏。我在谷歌上搜索并找到了一些方法,但我并不完全理解它们。有人能告诉我怎么做吗

谢谢大家。

有一个添加自定义文本宏的教程。以下是教程指定的为Objective-C创建自定义文本宏的必要步骤

  • 转到您的Xcode应用程序文件(root/Developer/Applications/)。 右键单击(控制单击)并显示包内容。 导航到(Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources/)。 选择Objective-C.xctxtmarco文件并复制它(command-C)。 打开一个新的Finder窗口并选择您的主文件夹。 导航到(库/应用程序支持/Developer/Shared/Xcode/)。 在Xcode文件夹中粘贴(command-v)Objective-C.xctxtmacro文件

  • 打开Objective-C.cxtmacro。它包含一个数组,大约有26个项目,每个项目都是一个字典。单击所选单元格右侧的“+”符号/选项卡。这将向plist根数组添加一个新项,它将成为我们的新条目(文本宏定义)

  • 选择新项目并将类型从字符串更改为字典。现在点击公开三角形(选定单元格的左侧),这将使三角形从指向右侧(折叠)旋转到指向下方(展开)。您可能还会注意到,当项目展开时,右侧的“+”符号会变成一组行。这让我们将“子项”名称/值对添加到新项目中

  • 我们需要将几个“子”名称/值对添加到新项目中,以使其正常工作,它们如下所示:

    • 标识符-描述宏的语言(父级)。标识符
    • BasedOn-这是(父)语言(objc)
    • IsMenuItem-布尔值。这将在“编辑”菜单中创建一个菜单项
    • 名称-在(以上)菜单项中收听的名称
    • TextString-将通过文本宏插入的实际字符串
    • CompletionPrefix-这是您键入的文本宏键
  • 将值添加到键。典型的宏如下所示(例如:NSLog text宏)

    • 标识符-objc.flog
    • BasedOn-objc
    • IsMenuItem-是
    • 名称-函数(NSLog)
    • TextString-NSLog(@“函数:%s”,函数)
    • 补全前缀-flog
    您可以随意命名标识符和CompletionPrefix,只要它不与任何现有的完成标识符冲突。在这里flog,用于功能日志

  • 阅读中的帖子,完全理解中


    重要更新:上面的v宏似乎在Xcode 3.2中不起作用。要使它工作,我们必须添加密钥

    OnlyAtBOL = YES; // or NO 
    
    指向xctxtmacro文件中的每个宏定义。此键指定宏仅在行首起作用,或不在行首起作用,即仅在行首起作用后起作用。因此flog宏将如下所示

    {
        Identifier = objc.flog;
        BasedOn = objc;
        OnlyAtBOL = YES;
        IsMenuItem = YES;
        Name = "Function (NSLog)";
        TextString = "NSLog(@"FUNCTION: %s", _FUNCTION_)";
        CompletionPrefix = "flog";
    }
    

    我希望这会对将来的人有所帮助