Ich verwende derzeit den folgenden Code, um die logische NSView-Position von Glyphen zu holen, die gut funktioniert, aber es scheint ein bisschen langsam und die Positionen sind nicht genau auf dem Zeichen Kerning Point und Baseline. Es kann sehr gut der Fall sein, dass alles, was ich tun muss, ist, die Glyphen selbst nacheinander zu durchlaufen und das Rect selbst zu bauen.Wie finde ich die Pixelposition eines Zeichens in einem NSTextView?
Dieser Code (Funktionen) jetzt, nur um zu sehen, ob es effizienter oder richtig durchgeführt werden kann.
// lastRange is any valid, bounds checked character range in an NSTextView
NSLayoutManager *layoutManager = [self layoutManager];
NSRect paragraphRect = [layoutManager boundingRectForGlyphRange:lastRange inTextContainer:[self textContainer]];
// Draw a gradient around the range.
NSGradient * gradient = [self indicatorGradient];
CGContextRef myContext = [[NSGraphicsContext currentContext] graphicsPort];
CGContextSetBlendMode(myContext , kCGBlendModeMultiply);
[gradient drawInRect:paragraphRect angle:90];