public virtual NSRange FindWordBoundries(string text, NSRange position) {
NSRange results = new NSRange(position.Location, 0);
var found = false;
// Find starting "word" boundry
while(results.Location > 0 && !found) {
var c = text [(int)results.Location - 1];
found = char.IsWhiteSpace (c) || IsLanguageSeparator(c);
if (!found) results.Location -= 1;
};
// Find ending "word" boundry
found = false;
while((int)(results.Location + results.Length) < text.Length && !found) {
var c = text [(int)(results.Location + results.Length)];
found = char.IsWhiteSpace (c) || IsLanguageSeparator(c);
if (!found) results.Length += 1;
};
return results;
}