草庐IT

ios - 如何在 iOS 中编辑来自另一个应用程序的文本

coder 2024-01-12 原文

我正在编写一个应用程序,其中包含一组嵌入式 lua 脚本。我希望能够在 iPad 上编辑脚本——这可能吗?

我想到的工作流程是:

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

编辑:我可以将“打开方式”选项添加到我的应用程序并按照 this question 打开文本文件。 ,但是,一旦我这样做了,文本编辑器会把文件保存回它的来源吗?还是只使用副本?这假设我可以找到一个可以打开 lua 文件的文本编辑器,我想附近有一个。

最佳答案

作为@danielbeard correctly stated由于 iOS 沙盒模型,这不会像预期的那样直接在桌面(或更宽松的移动)操作系统上工作,它有效地将应用程序数据限制在应用程序本身,尽管值得注意的是手头的问题不是沙盒 本身,它也存在于较新版本的 OS X 中,但事实上 iOS 没有提供镜像到应用程序沙箱中的统一文件系统层。通过在 Lion 的 TextEdit 中编辑桌面上的文本文档,您可以清楚、非常简单地亲眼看到这一点。 TextEdit 看到文档位于其沙盒中 - ~/Library/Containers/com.apple.TextEdit/Data/Desktop,但它也清楚地保存在您的桌面上 ~/Desktop – 同时;出于沙箱的目的,两个目录都是一个。

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

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

如果接收编辑器也实现了“打开方式”,并且您的应用程序已注册为能够编辑 .lua 文件,编辑器稍后可以将编辑后的文件复制回您应用程序的沙箱。在 iOS SDK 强加的限制范围内,我对此一无所知,在那里会发生什么(重复数据删除、版本控制、覆盖有或没有提示)将取决于你。

以下 Apple Developer 文档可能会提供有用的起点:

关于ios - 如何在 iOS 中编辑来自另一个应用程序的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10508661/

有关ios - 如何在 iOS 中编辑来自另一个应用程序的文本的更多相关文章

  1. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  2. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  3. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

    我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

  4. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  5. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  6. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  7. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  8. ruby-on-rails - 渲染另一个 Controller 的 View - 2

    我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>

  9. ruby-on-rails - 如何在 ruby​​ 中使用两个参数异步运行 exe? - 2

    exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby​​中使用两个参数异步运行exe吗?我已经尝试过ruby​​命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何ruby​​gems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除

  10. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

随机推荐