      行頭の文字を取得
      */
     private func getLineHead() -> String {
-        return self.attributedText.attributedSubstringFromRange (NSMakeRange(self.location, 1)).string
+        return self.attributedText.substring(NSMakeRange(self.location, 1))
     }
 
     /**

        let typographicWidth = CTLineGetTypographicBounds(ctline, nil, nil, nil)

        // 均等揃えする。ぶら下がりのために、右側のスペースを開けておく
        let burasagariSpace = burasagari ? Double(self.fontSize) : 0
        let oikomiSpace = oikomi ? Double(self.fontSize / 2) : 0
        let lineWidth = Double(self.width) + burasagariSpace + oikomiSpace
        if typographicWidth > (lineWidth - Double(self.fontSize)) {
            if let justifiedCtline = CTLineCreateJustifiedLine(ctline, 1, lineWidth) {
                ctline = justifiedCtline
            }
        }

        return (CGFloat(typographicWidth), offsetX, offsetY, ctline)
    }


        var tail = ""
        let location = range.location + range.length
        if location <= self.attributedText.length {
            tail = self.attributedText.substring(NSMakeRange(location - 1, 1))
            if tail == "\n" && location - 2 >= 0 {  // 行末が改行の場合は、改行文字の前の文字を取得する。
                tail = self.attributedText.substring(NSMakeRange(location - 2, 1))
            }
        }
        return tail
