gpt4 book ai didi

ios - 设置最大行可编辑 TextView - Swift/iOS

转载 作者:行者123 更新时间:2023-11-28 08:07:17 25 4
gpt4 key购买 nike

以下代码将设置 TextView 的最大行数。

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

但是,在编辑模式下,您可以在超过最大行数的情况下继续按 Enter 并在屏幕外输入。

如果您尝试键入更多内容,您如何才能使光标不会转到下一行?

最佳答案

试试这个

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;
}

关于ios - 设置最大行可编辑 TextView - Swift/iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44750385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com