にあるグリフの総数を取得するにはどうすればよいNSLayoutManager
ですか?
次のようなカスタム テキスト ビューにオーバーレイするカーソル レイヤーを作成していました。
func moveCursorToGlyphIndex(glyphIndex: Int) {
// get bounding rect for glyph
var rect = self.layoutManager.boundingRectForGlyphRange(NSRange(location: glyphIndex, length: 1), inTextContainer: view.textContainer)
rect.origin.y = self.textContainerInset.top
rect.size.width = cursorWidth
// set cursor layer frame to right edge of rect
cursorLayer.frame = rect
}
ただし、それが範囲外でないことを確認したかったglyphIndex
のです。このようなもの:
if glyphIndex < self.layoutManager.glyphCount { // doesn't work
// ...
}
しかし、試行錯誤しても適切な物件を見つけることができず、オンラインで検索してもSOの答えはありませんでした。
最終的にドキュメントに埋もれていることがわかりました (そして今では明らかなようです) が、長い時間がかかったので、ここに Q&A を追加することにしました。