首先,我正在开发的平台:Swift 3 + iOS 10.3。
我要完成的工作:
- 用户尝试在文本视图中输入一些文本,其中包括一些 UITextView 中的时间。例如:“今天晚上 10 点开会”。
- 现在我有了文本,我想从事件中收集日期,即“今天晚上 10 点”。
- 我想将此信息转换为
Date()
对象。
到目前为止我所知道和尝试过的:
- NSDataDetectors:它们对于从字符串中提取这些信息非常有用,但是正如您在此处看到的,用户可以输入各种格式的日期,这使我无法涵盖
NSDateFormatter()
. - UITextViews:它们内置了数据检测,但这主要用于不可编辑的文本,最适合直接在 UI 中进行用户交互。我只需要提取这些信息。
它已经做什么了? 苹果系统。如果您在 macOS 上使用过提醒或日历,则输入提醒/事件很容易:在日历中,添加一个“晚上 10 点开会”的事件会创建一个名为“晚上10 点会议”的事件,而不是简单地转换整个文本并创建一个事件称为“晚上 10 点开会”。
所以我想知道如何在 iOS 上利用上述功能,这似乎内置在 macOS 上?似乎没有关于此特定功能的帖子或教程(至少我找不到)。如果没有用于此的 API,我将不胜感激,如果有人能提出一种替代方法来处理文本中的日期,以便我能够完成上述操作。