Tag: 笔记

与CoreData Swift 3结合使用以接受文本和URL的共享扩展

正如我在先前有关操作扩展的博客中提到的那样,我正在创建默认Apple Notes应用程序的副本,其中还包括创建共享扩展名,该共享扩展允许我的Notes应用程序接受其他应用程序中的URL和文本。 这里的主要挑战是,我希望我的共享扩展名能够创建或添加到保存在CoreData中的现有笔记中。 整个项目可以位于此处(免责声明,我仍在对其进行调整): almusto / CustomNotes 通过在GitHub上创建一个帐户为CustomNotes开发做出贡献。 github.com 我做了很多的在线查找工作,但从未真正找到一个很好的例子说明我正在尝试做的事情。 其中一些方法包括在CoreDataStack的init中使用NotificationCenter并使用它来传递数据的方法,但是我发现了一种更简单且似乎很好的方法! 就像所有其他扩展程序一样,Share Extensions基本上是它们自己的应用程序,但是它们需要作为项目的一部分而不是独立的项目包含在内。 要在项目中创建共享扩展名,请转到文件->新建->目标,然后选择共享扩展名。 创建后将出现一个弹出窗口,询问您是否要使其激活。 这意味着在构建应用程序时,它将构建扩展而不是应用程序。 您可以选择否或是,然后手动更改要在Xcode左上方运行的内容: 如前所述,我在Notes应用程序中进行了股票扩展。 为了使这两个应用程序彼此通信,首先要做的是将您的应用程序和扩展名连接到同一应用程序组。 为此,请转到项目功能,然后将您的应用程序和扩展程序的“应用程序组”都打开,然后将它们添加到同一组中: 在共享扩展本身中,您会注意到它带有类型为SLComposeServiceViewController的ShareViewController,其中具有三个函数: isContentValid()->布尔 didSelectPost() configurationItems()-> [任何]! 为了解释这些功能,您可以使用Safari快速运行扩展,然后单击活动按钮时,应该看到扩展已加载,如下所示: 在不编写任何代码的情况下单击它之后,您将看到此消息: 如您所见,它就像是Safari中自己的小应用程序。 回到您可能已经猜到的三个函数,当您单击发布按钮时,didSelectPost()被触发。 isContentValid()实际上是在检查我们尝试与应用程序共享的内容是否为正确的类型。 此功能确定是否启用发布按钮。 最后,configurationItems()函数使我们能够将信息发布到特定对象。 在此示例中,我希望能够通过Core Data在CustomNotes应用程序中创建或添加到现有笔记中。 在开始在扩展程序中编写代码之前,让我们回到我的customNotes应用程序以提供一些上下文,并开始与扩展程序共享coreData的过程。 Core Data上还有其他资源,因此除了与共享扩展有关的需求之外,我将不做过多介绍。 我个人喜欢创建一个可以处理我所有核心数据需求的核心数据栈。 在此示例中,我的数据模型称为“ NotesModel”,它具有“ Note”类型的实体和两个属性。 一个叫做String的“ title”,另一个叫做Date的“ date”,在CoreData中实际上是NSDate类型。 以下是我的CoreDataStack: 现在,在此示例中,我只想允许我的notes应用程序接受URL和文本。 第一步是进入扩展程序的plist文件,并将NSExtensionActivationRule更改为字典,然后将NSExtensionActivationSupportsWebPageWithMaxCount作为数字添加为1,将NSExtensionActivationSupportsText作为布尔值添加为YES。 同样,当我们在这里时,您可以将Bundle显示名称更改为所需的名称,因为此名称是设置活动控制器时实际显示的名称。 现在,在我们的ShareViewController中,我们创建一些变量来保存数据。 一方面,我希望变量保留我的网址信息,在我的示例中,我只希望该网址为字符串。 另外,如果我只是想共享文本,我希望有一个变量可以保留该文本。 一定要在底部启用这个小的选择注释选项,我们需要使用我们的configurationItem函数,但是我们想用CoreData中的注释填充它,因此让我们向ShareViewController添加一些属性。 一个用来存储我们所有的笔记,一个用来创建我们的CoreDataStack实例,另一个用来保存我们选择要发布到的笔记的值。 var selected注意:注意! […]

开发自己的应用程序以做笔记。

这不是一个应用程序广告,而是一个关于为什么和我以及Sunm设计和开发此应用程序的故事。 应用是我们的日常生活,我们通过构建应用来改善生活。 深度学习 作为沉重的互联网查看者,这些年来,我阅读了3w上的大量文章,文章或故事。 不幸的是, 那些引起我兴趣的想法随着时间的流逝而悄悄溜走了 。 我意识到我应该充分利用它们,而不仅仅是滚动和查看,我努力在物理笔记本或应用程序中做笔记。 参与生活似乎是生活中一种重要的方式。 不再有笔记应用程序 许多朋友推荐Evernote做笔记,但我对此表示严重怀疑。 我强迫自己使用带有过度设计的动画的此应用程序,直到以烦人的格式打开我的笔记。 然后我切换到Apple Notes。 Notes应用程序具有许多新添加的功能,例如与其他用户同步,手绘图等。它对作者很有吸引力,但对我而言却不那么有吸引力。 这些强大的功能是不必要的,对我来说是浪费的。 基本要求 作为开发人员,为什么不自己创建自己的(不适用于App Store)笔记应用程序? 我把这个想法告诉了我的UI / UX设计师女友Sunm。 她和我有同样的情况。 对于使用多个应用程序来记住词汇,记笔记和准备厨师食谱,她感到非常沮丧。 她肯定需要定制的应用程序。 因此,让我们开始思考我们的需求。 URL链接是具有上下文的来源。 原始上下文有助于我们轻松理解。 应该对其进行维护并方便地进行检索。 单词->句子->故事语境 。 这些要素对于理解任何新词汇都非常有用。 它必须包含在内。 单词发音纠正了我们的问题。 它只需要一步就可以得到它。 (现在我们必须长按->说) 图片可以帮助视觉记忆。 在google或bing中搜索图像应该放在首位。 Quizlet功能是t0测试的好方法。 通常,记笔记应该既有趣又迅速。 我们的想法/笔记应用 首先,我们基于URL创建了一个文件夹。 顺便说一句,我们从macOS复制了颜色标签来标记文件夹(对我来说,绿色代表中等故事,紫色代表小说,蓝色代表音频材料)。 然后我们在这个应用程序中阅读它。 在阅读时,我们复制了我们感兴趣的这些项目。(“复制”直接创建项目)。 阅读完毕后,我们很容易获得该故事的单词或句子列表。 如果您再次阅读该故事,则您感兴趣的所有单词和句子都将突出显示。 同时,您可以单击它以发言,或在bing.com中搜索该项目的图像。 下图第一张右上角的按钮的功能是: 播放声音:说出/ mp3文件(如果您为此文件夹插入了mp3网址)。 查看此文件夹的链接。 原始上下文在这里。 测验:从单词到带有图片的句子 添加一个新项目。 […]