     {
         self.font ?? UIFont.systemFontSize()
         
-        let fontSize = self.font!.pointSize
-        var width = fontSize + 10
+        let lineHeight = self.font!.lineHeight
+        var width = lineHeight + 10
         
         // Woo.. too big
         if number >= 100 {

    
    // MARK: Copy & Paste
    
    public override func paste(sender: AnyObject?) {
        print("textview paste invoke. paste content: \(UIPasteboard.generalPasteboard().string)")
    }

    // MARK: BarButtonItem action
    

        
        let x: CGFloat = 0
        let lineFragmentPadding = self.textContainer.lineFragmentPadding
        let size = CGSize(width: width, height: lineHeight)
        
        let numberBezierPath = UIBezierPath(rect: CGRect(origin: CGPoint(x: x, y: y), size: size))
        
//        let numberLabel = UILabel(frame: CGRect(origin: CGPoint(x: x, y: y + lineFragmentPadding / 2), size: CGSize(width: width, height: fontSize)))
        let numberLabel = UILabel(frame: numberBezierPath.bounds)
        numberLabel.backgroundColor = UIColor.lightGrayColor()
        numberLabel.text = "\(number)."
        numberLabel.font = font
        
