public virtual NSRange FindLineBoundries(string text, NSRange position) {
NSRange results = position;
var found = false;
// Find starting line boundry
while(results.Location > 0 && !found) {
var c = text [(int)results.Location - 1];
found = (c == Newline || c == LineSeparator || c == ParagraphSeparator);
if (!found) results.Location -= 1;
};
// Find ending line boundry
found = false;
while((int)(results.Location + results.Length) < text.Length && !found) {
var c = text [(int)(results.Location + results.Length)];
found = (c == Newline || c == LineSeparator || c == ParagraphSeparator);
if (!found) results.Length += 1;
};
return results;
}