Какой самый эффективный способ извлечь первую строку без пробелов из NSTextView?
Например, если текст:
\n
\n
\n
This is the text I want \n
\n
Foo bar \n
\n
Результат будет "Это текст, который я хочу".
Вот что у меня есть:
NSString *content = self.textView.textStorage.string;
NSInteger len = [content length];
NSInteger i = 0;
// Scan past leading whitespace and newlines
while (i < len && [[NSCharacterSet whitespaceAndNewlineCharacterSet] characterIsMember:[content characterAtIndex:i]]) {
i++;
}
// Now, scan to first newline
while (i < len && ![[NSCharacterSet newlineCharacterSet] characterIsMember:[content characterAtIndex:i]]) {
i++;
}
// Grab the substring up to that newline
NSString *resultWithWhitespace = [content substringToIndex:i];
// Trim leading and trailing whitespace/newlines from the substring
NSString *result = [resultWithWhitespace stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Есть ли лучший, более эффективный способ?
Я подумываю о том, чтобы поместить это в метод -textStorageDidProcessEditing: NSTextStorageDelegate, чтобы я мог получить его при редактировании текста. Вот почему я бы хотел, чтобы метод был максимально эффективным.