2016-06-06 4 views
1

Я пытаюсь ограничить количество символов внутри текстового вида до 20. После 20 вместо этого нужно «...». Функция не срабатывает, и я правильно устанавливаю делегат.Как отрезать текстовое представление после 20 символов?

класс Animal

cell.pn.text = np[indexPath.row] 
cell.pn.selectable = false 
cell.pn.delegate = self 

Расширение класса Animal

extension Animal : UITextViewDelegate{ 
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { 
    return textView.text.characters.count + (text.characters.count - range.length) <= 20 
    } 
} 
+0

попробуйте изменить <= 75 до <= 20 – chickenparm

+0

Первоначально я хотел 75, но забыл изменить его, когда я оставил точку, ничего не происходит. – manatee

ответ

1

Вы можете использовать что-то вроде этого:

  if displayName.characters.count > 20 { 
       displayName = (displayName as NSString).substringToIndex(20) 
       displayName.appendContentsOf("...") 
      } 
3

Попробуйте это:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 
     let text = textField.text 
     let newLength = text.characters.count + string.characters.count - range.length 
     return newLength <= 20 
    } 
+0

Не работает, 1) когда я прерываю точку на функции, ничего не происходит, 2) Я использую текстовое представление, а не текстовое поле – manatee