OSDN Git Service

10.13以降は CGGlyph を使用するようにした
authormasakih <masakih@users.sourceforge.jp>
Mon, 13 Aug 2018 15:05:59 +0000 (00:05 +0900)
committermasakih <masakih@users.sourceforge.jp>
Mon, 13 Aug 2018 15:05:59 +0000 (00:05 +0900)
KCD/StrokeTextFieldCell.swift

index 2870fd1..7ea4da5 100644 (file)
@@ -69,13 +69,16 @@ final class StrokeTextFieldCell: NSTextFieldCell {
             point.y -= controlView.frame.height
         }
         
-        let nsGlyph = UnsafeMutablePointer<NSGlyph>.allocate(capacity: range.length)
-        
-        (0..<range.length).forEach { nsGlyph[$0] = NSGlyph(glyph[$0]) }
-        
         let path = NSBezierPath()
         path.move(to: point)
-        path.appendGlyphs(nsGlyph, count: glyphLength, in: font)
+        if #available(macOS 13, *) {
+            path.append(withCGGlyphs: glyph, count: glyphLength, in: font)
+        } else {
+            let nsGlyph = UnsafeMutablePointer<NSGlyph>.allocate(capacity: range.length)
+            
+            (0..<range.length).forEach { nsGlyph[$0] = NSGlyph(glyph[$0]) }
+            path.appendGlyphs(nsGlyph, count: glyphLength, in: font)
+        }
         path.lineWidth = StrokeTextFieldCell.boarderWidth
         path.lineJoinStyle = .roundLineJoinStyle