现在我需要更改 nstextview 中段落的对齐方式而不选择它,所以我需要知道段落当前范围的范围?
最佳答案
我有一个子类 NSTextView
所以你需要访问textStorage
和selectedRange
不同于[self textStorage]
和[self selectedRange]
.
NSTextStorage *textStorage = [self textStorage];
NSString *string = [textStorage string];
NSUInteger editEnd = [self selectedRange].location;
NSUInteger editStart = editEnd-[textStorage editedRange].length;
NSUInteger maxLength = [string length];
while (editStart > 0) {
unichar theChr = [string characterAtIndex:editStart-1];
if( theChr == '\n' || theChr == '\r' ) {
break;
}
--editStart;
}
while (editEnd < maxLength) {
unichar theChr = [string characterAtIndex:editEnd];
if( theChr == '\n' || theChr == '\r' ) {
break;
}
++editEnd;
}
NSRange paragraphRange = NSMakeRange(editStart, editEnd-editStart);
关于cocoa - 如何获取 NSTextView 中光标所在位置的当前段落的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5427906/