You may have seen Safari, Mail, Notes or other applications highlighting information in some text and they may offer to do something with the data, e.g. take a date and make a new event in your calendar or take an address and add it to your contacts.
Have you wondered how this works?
Apple provides data detectors in their frameworks to identify those data bits. We just added a new class NSDataDetectorMBS to use those in Xojo. While you can do a lot with regular expressions yourself, these pre-built detectors are convenient to use as they are.
You tell what to look for, either Date, Address, Link, PhoneNumber or TransitInformation. You can combine those types and look for multiple things together. The plugin then uses Apple's framework and returns the result as NSTextCheckingResultMBS objects for you to inspect. Let us show you the screenshot from our example project:
As you see we have a listbox with results. Each result has always the text found with the position and length to define the range in the original text. Then we provide the type of item found and type specific information. For a phone number this is simply an entry PhoneNumber with the number. If you need to format the phone number, check Using libPhoneNumber for phone number formatting. For an address, you may see Name, JobTitle, Organization, Street, City, State, ZIP and Country listed. Date results come with date, time zone and duration while links comes with an URL. The items we find are highlighted in the TextArea control in color.
Please try those functions later in the next days with our next pre-release and let us know how they work for you.