     
     // MARK: - Convert
     
-    // FIXME: wrong, dont think about text line.
     func appendGlyphsWithText(text: String, textRange: UITextRange) -> String
     {
         // All of the point y in seleted text.
         let selectedPointYArray = CKTextUtil.seletedPointYArrayWithTextView(self, selectedRange: textRange, isContainFirstLine: true, sortByAsc: true)
         
-        var allLineCharacters = (text as NSString).componentsSeparatedByString("\n")
+        var allLineString = (text as NSString).componentsSeparatedByString("\n")
         
         var numberedItemIndex = 1
-        
-        for characters in allLineCharacters {
-            // New method.
-            
-            
-        }
-        
-        var lineCharactersIndex = 0
-        
-        for selectedPointY in selectedPointYArray {
-            if let item = itemFromListItemContainerWithKeyY(selectedPointY) where String(Int(item.firstKeyY)) == selectedPointY
-            {
-                let characters = allLineCharacters[lineCharactersIndex]
-                
-                var prefixCharacters: String! = ""
+        // move location record current range location of string.
+        var moveLocationValue = 0
+        
+        for (index, lineString) in allLineString.enumerate() {
+            let currentPosition = self.positionFromPosition(self.beginningOfDocument, offset: moveLocationValue)
+            let currentY = self.caretRectForPosition(currentPosition!).origin.y
+            
+            if let item = itemFromListItemContainerWithY(currentY) {
+                var prefixString: String! = ""
                 
                 switch item.listType() {
                 case .Numbered:
-                    prefixCharacters = "\(numberedItemIndex). "
+                    prefixString = "\(numberedItemIndex). "
                     numberedItemIndex += 1
                     
                     break
                 case .Bulleted:
-                    prefixCharacters = "* "
+                    prefixString = "* "
                     
                     numberedItemIndex = 1
                     

                    break
                }
                
                let newCharacters = prefixCharacters + characters
                
                allLineCharacters[lineCharactersIndex] = newCharacters
                
                lineCharactersIndex += 1
            }
            
            
        }
        
        let textAppended = allLineCharacters.joinWithSeparator("\n")
        
        return textAppended
    }

                    let checkBoxListItem = item as! CheckBoxListItem
                    
                    if checkBoxListItem.isChecked {
                        prefixString = "- [x] "
                    } else {
                        prefixString = "- [ ] "
                    }
                    
                    numberedItemIndex = 1
