1

にあるグリフの総数を取得するにはどうすればよい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 を追加することにしました。

4

1 に答える 1

1

numberOfGlyphs次のようにプロパティを使用します。

layoutManager.numberOfGlyphs

これについては、テキスト レイアウト プログラミング ガイドのドキュメント (こちら) で説明されています。

于 2016-01-28T13:44:35.673 に答える