objective-c - NSTextview:如何获取插入点的字形矩形?自定义 TextView ?

标签 objective-c xcode macos cocoa nstextview

我似乎找不到任何关于如何获取插入点的 rect 的文档。我正在尝试在文本插入符/插入点正下方显示一个 View (如自动完成)

我正在考虑制作一个自定义 TextView ,但如果我可以避免它,那将是我的理想选择。谢谢!

最佳答案

- (NSRect)rectForActiveRange {
    NSLayoutManager *l = [self layoutManager];
    NSRange range = [l glyphRangeForCharacterRange:self.activeRange actualCharacterRange:nil];
    NSRect rect = [l boundingRectForGlyphRange:range inTextContainer:[self textContainer]];
    rect = NSOffsetRect(rect, self.textContainerOrigin.x, self.textContainerOrigin.y);
    return rect;
}

activeRange == selectedRange WHICH 是选择范围,或者如果从您键入的位置开始有长度为 0 的选择范围

另请参阅:http://www.cocoabuilder.com/archive/cocoa/158706-how-to-find-the-insertion-point-of-nstextview.html

关于objective-c - NSTextview:如何获取插入点的字形矩形?自定义 TextView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16387265/

相关文章:

ios - 将 NSManagedObject 设置为 nil;

objective-c - 应用程序启动时的 NSImage

macos - 如何从 mac 连接到 aws Redshift db

ios - 如何从一个 UIView 更改另一个 UIView 上的标签

iPhone闪耀动画

xcode - 导入包含 OPENCV 函数的静态库时为 "Undefined symbols for architecture armv7"

ios - 这是实体的属性吗?

php - 在 Mac OSX 上启用 PHP pdo_odbc 扩展

macos - 使别名脚本失败

iphone - 如何在动画与不动画时不重复此代码?