【问题标题】:Data Detectors in CocoaCocoa 中的数据检测器
【发布时间】:2010-01-09 20:44:58
【问题描述】:

我想在邮件中的 NSTextField / NSTextView 中添加数据检测器(例如日期、电子邮件、URL 等)。

有人知道怎么做吗?我想我在 TextEdit 的源代码中看到了它,但是当我检查它是 2005 的版本时,我找不到新的源代码。

亚历克斯

【问题讨论】:

    标签: cocoa email nstextfield nstextview


    【解决方案1】:

    在 Snow Leopard 中,您现在只需单击 IB 检查器中的相应复选框即可在 NSTextView 中启用数据检测器。

    【讨论】:

    • 谢谢——比上面的简单多了 XD
    【解决方案2】:

    您需要设置对象的格式化程序出口。内置格式化程序是 NSDateFormatterNSNumberFormatter

    您可以通过扩展NSFormatter 类来定义自定义格式化程序。 Aaron Hillegass优秀的'Cocoa Programming for Max OS X'中有一章关于创建NSFormatters。

    要检测某些文本正文中的日期、网址、电子邮件地址等,您可以使用Latent Semantic Mapping Framework。它是 Leopard 的公共 API,但没有大量文档。还有一个名为lsm 的命令行工具,可让您测试您想要使用的任何自定义提取器。它是一个 C API,据我所知没有集成到 Cocoa 中,所以你需要自己连接它

    【讨论】:

    • 感谢您的回答。但是如何使用 NSFormatter 来检测文本中的数据呢?例如,如果我有一条短信,上面写着‘嘿,你好吗?让我们周日见面。我的号码是 123-555-000'。如果我在邮件中收到此邮件并将鼠标悬停在“星期天”上,它会建议我将事件添加到 iCal,如果我将鼠标悬停在“123-555-000”上,它会建议我将其添加到联系人或其他内容中。我该如何实现这种行为?
    • @Alexandre Cassagne:啊——好的。在潜在语义映射框架上添加了一段,我认为这是您想要的。
    • 这将很难使用,但这是我正在寻找的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    相关资源
    最近更新 更多