2010-01-09 2 views
2

Я хочу добавить детектор данных в NSTextField/NSTextView, например, в Mail (например, дата, адрес электронной почты, URL и т. Д.).Детекторы данных в какао

У кого-нибудь есть идея, как это сделать? Я думаю, что видел его в исходном коде TextEdit, но когда я проверил, это версия 2005 года, и я не могу найти новый исходный код.

Alex

ответ

2

Вам необходимо установить выход для форматирования объекта. Встроенные форматы: NSDateFormatter и NSNumberFormatter.

alt text

Вы можете определить пользовательские форматтер путем расширения NSFormatter класса. Существует глава в Aaron Hillegass «Cocoa Programming for Max OS X» о создании NSFormatters.

Чтобы определить даты, URL, адрес электронной почты и т. Д. В тексте какого-либо текста, вы можете использовать Latent Semantic Mapping Framework. Это публичный API как Leopard, но для этого нет большой документации. Существует также инструмент командной строки, называемый lsm, который позволит вам протестировать любые пользовательские экстракторы, которые вы хотите использовать. Это C API и не интегрирован в Cocoa, насколько я знаю, поэтому вам нужно будет подключить его самостоятельно.

+0

благодарит за ответ. Но как я могу использовать NSFormatter для обнаружения данных в тексте? например, если у меня есть текст, который идет «Эй, как дела? Давайте встретимся в воскресенье. Мой номер 123-555-000 '. Если бы я получил это в почтовом ящике с надписью «мышь», это предложило бы мне объявить мероприятие iCal, и, если бы мы с помощью мыши «123-555-000» предложили бы добавить его в контакт или что-то еще. Как мне добиться такого поведения? –

+0

@ Александр Кассан: Ах - ОК. Добавили абзац о структуре скрытого семантического сопоставления, который, как я думаю, является тем, что вы хотите. –

+0

С трудом работать, но это то, что я ищу. Спасибо! –

3

В Snow Leopard теперь вы можете включить Data Detectors в NSTextView, просто щелкнув соответствующий флажок в IB инспектор.

+0

Спасибо - намного проще, чем выше XD –

Смежные вопросы