如何在iOS中从另一个应用程序中编辑文本

我正在编写一个应用程序,其中包含一组嵌入式Lua脚本。我想在iPad上编辑这些脚本,这可行吗?

我想到的工作流程是:

  1. 启动我的应用程序并测试;
  2. 转到我的iPad上的文本编辑器并更改Lua脚本;
  3. 关闭我的应用程序;
  4. 重新启动我的应用程序以重新加载脚本;
  5. 回到1。

编辑:我可以为我的应用程序添加"打开"选项,根据这个问题,打开文本文件,但是,一旦我这样做,文本编辑器会把文件保存回原来的位置吗?还是只是使用一个副本?假设我能找到一个可以打开Lua文件的文本编辑器,我想应该有这样一个编辑器。

原文链接 https://stackoverflow.com/questions/10508661

点赞
stackoverflow用户501459
stackoverflow用户501459

如果您越狱您的 iPad 并安装了 OpenSSH,那么您可以做所有这些和更多的事情。

我使用 Moai 进行开发,这是一个最近被 Double Fine 采用的用于编写游戏的 Lua SDK。我可以通过一个 SSH 会话连接到本地主机(使用 Prompt,一种 iOS SSH 客户端),使用我选择的编辑器(Vim)直接在 iPad 上编码。我映射一个快捷键来重新启动应用程序。配合蓝牙键盘,iPad 可以接近笔记本电脑。

您还可以使用类似于 ExpandDrive 的工具将 iPad 的文件系统映射到桌面文件系统中。然后,您可以像在桌面机器上一样浏览和编辑文件,完全无线连接。您可以在编辑器中映射一个按键来通过 SSH 重新启动您的应用程序,所以工作流程如下:

  1. 编辑 Lua 脚本。
  2. 按下键以重新启动应用程序并查看更改。
2012-05-09 02:15:52
stackoverflow用户1002727
stackoverflow用户1002727

在iOS中,如果没有越狱,您无法从一个应用程序的沙盒访问另一个应用程序的沙盒。

2012-05-09 03:33:30
stackoverflow用户990363
stackoverflow用户990363

正如@danielbeard正确指出的,这样做在桌面(或更宽容的移动)操作系统上不会像预期的那样直接工作,因为iOS的沙盒模型有效地将应用程序数据限制在应用程序本身内部,尽管值得注意的是,问题并非沙盒 _本身_,较新版本的OS X中也存在沙盒,但是iOS没有统一的文件系统层,可以反映到应用程序的沙箱中。你可以通过在Lion的TextEdit中编辑桌面文档来轻松地看到它,TextEdit看到文档位于其沙箱中 - ~/Library/Containers/com.apple.TextEdit/Data/Desktop,但同时也明确保存到你的桌面~/Desktop - 针对沙箱的目的,两个目录是一个。

 Sandbox me once, edit me twice

跨应用程序文件层在iOS中不存在。 这意味着在iOS中不可能在多个应用程序中编辑同一个物理副本的文件,因为每个应用程序都需要在自己的沙箱中有一个副本。 但是可以通过自iOS 3.2以来支持的“打开方式”机制来“传递”文件从应用沙盒到应用沙盒(严格讲:复制它们),当在其他应用中打开邮件附件时,可以看到它的作用。

Open me up

如果你的应用程序实现了通过该机制转发其.lua文档的能力,则任何识别文件类型的文本编辑器都可以将其接收到自己的沙箱中的副本。我对实现细节有些模糊,因为我本身不是iOS开发人员,但是如果来自OS X的UTI声明规则和我在使用我的iDevices时观察到的一些东西成立,您甚至可以将文件类型插入到您自己的应用程序中的public.text UTI层次结构中,这将为设备上的所有文本编辑器添加对它的支持。

如果接收编辑器也实现了“打开方式”,并且你的应用程序已经注册为能够编辑.lua文件,那么编辑器稍后可以将编辑后的文件复制回你的应用程序沙箱。发生了什么(去重,版本控制,覆盖还是不带提示)由您决定,受iOS SDK的限制约束,我对此一无所知。

以下是苹果开发人员文档可能提供有用起点的文件:

2012-05-11 09:39:40