在应用程序中嵌入 Xcode Playground

Posted

技术标签:

【中文标题】在应用程序中嵌入 Xcode Playground【英文标题】:Embed Xcode Playground within an application 【发布时间】:2015-02-04 06:50:56 【问题描述】:

我想制作一个 Cocoa OS X 应用程序,用户可以在我的应用程序的窗口中输入和执行 Swift 语言代码。我的第一个想法是自己做一个基本的IDE,用系统调用执行编译和执行;不过,我真的很想拥有交互式 Playground 功能。

我进行了研究,发现我可以创建带有嵌入式文档的 Xcode Playground 文件,但这提出了一个问题:

文档是否必须放在 游乐场,或者我可以在我的 html 的容器中嵌入游乐场吗 代码?

我所说的 Xcode Playground 嵌入式文档can be found here。

基本上,我希望以模仿 CodeAcademy.com 上使用的布局的方式嵌入 Playground

文档嵌入的 Xcode Playgrounds 是否可以做到这一点,还是我必须在我的 Cocoa 应用程序中重新创建一个 IDE?

【问题讨论】:

【参考方案1】:

根据Apple的Interactive Learning Document Format Reference,playground的sections元素只能包含codedocumentation元素穿插的平面列表,也就是说它们必须是内联的截至发稿。

但是,您会注意到指南顶部的一条消息,

警告:这是一个可能会更改的规范。

结论:不,但是file a feature request。

【讨论】:

无赖。您能否建议一种可以最好地模仿的方法?在我的 Cocoa 应用程序中创建自己的基本 IDE 会更好(有没有办法可以将 REPL 添加到我自己的应用程序中以模仿游乐场?),我可以以任何方式将这个 Playground 窗口嵌入到我的应用程序中,还是其他方式? 这是一个非常广泛的问题...您当然可以在后台执行 swift 工具,但至于保持与 REPL 的实时连接...我怀疑当前公开可用的 LLDB API使用 Swift,但你可以试一试。 我的问题是如何模仿原始帖子中显示的图像中的应用程序。我知道我可以使用 OS X Storyboard 创建布局,但我如何最好地重新创建代码编辑器部分,其中显示了短语 print "Hello Welcome to Python"。我可以重新创建自己的基本 IDE,它基本上是一个文本输入字段,具有一些花哨的功能,如折射器和代码完成,但这需要大量的工作,尤其是代码完成部分。我想知道是否有更好的建议让我“重新创建***”。有什么想法吗? 再一次,对于这个论坛来说太宽泛了——请参阅help center。你试过 NSTextView 吗?

以上是关于在应用程序中嵌入 Xcode Playground的主要内容,如果未能解决你的问题,请参考以下文章

Xcode & Playground 不显示结果窗口

Xcode Playground 中的自定义字体

如何在 Xcode 11 Playground 中使用图像?

在 Xcode 6.3 Playground 中查看数组和元组

在 Xcode Playground 中打印每个数组项?

无法在 Xcode 6 Playground 中使用 SpriteKit