2017-06-25 19 views
1

次のコードは、TextViewの最大行数を設定します。最大行を編集可能に設定するTextView - Swift/iOS

textView.textContainer.maximumNumberOfLines = 5; 
textView.textContainer.lineBreakMode = .byTruncatingTail 

ただし、編集モードでは、最大行を超えてenterキーを押し続けて画面をオフにすることができます。

moreを入力しようとすると、カーソルが次の行に移動しないようにするにはどうすればよいですか?

答えて

0

この

func sizeOfString (string: String, constrainedToWidth width: Double, font: UIFont) -> CGSize { 
    return (string as NSString).boundingRectWithSize(CGSize(width: width, height: DBL_MAX), 
     options: NSStringDrawingOptions.UsesLineFragmentOrigin, 
     attributes: [NSFontAttributeName: font], 
     context: nil).size 
} 


func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { 
    let newText = (textView.text as NSString).stringByReplacingCharactersInRange(range, withString: text) 
    var textWidth = CGRectGetWidth(UIEdgeInsetsInsetRect(textView.frame, textView.textContainerInset)) 
    textWidth -= 5.0 * textView.textContainer.lineFragmentPadding; 

    let boundingRect = sizeOfString(newText, constrainedToWidth: Double(textWidth), font: textView.font!) 
    let numberOfLines = boundingRect.height/textView.font!.lineHeight; 

    return numberOfLines <= 5; 
} 
を試してみてください
関連する問題