gpt4 book ai didi

ios - 将字符串填充到 textView 时出现问题

转载 作者:行者123 更新时间:2023-11-30 13:47:57 26 4
gpt4 key购买 nike

uploaded video (7 sec) for describing my problem

我在 tableView 单元格中嵌入了一个 textView,当我们在该 textView 上输入内容时,textview 会根据输入的内容自动增加其高度,并且单元格也会增加其大小,为此我使用以下方法: -

//tableViewCell

/// Custom setter so we can initialise the height of the text view
var textString: String {
get {
return textView?.text ?? ""
}
set {
if let textView = textView {
textView.text = newValue

textViewDidChange(textView)
}
}
}



override func awakeFromNib() {
super.awakeFromNib()



// Disable scrolling inside the text view so we enlarge to fitted size
textView?.scrollEnabled = false
textView?.delegate = self



}

override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)

if selected {
textView?.becomeFirstResponder()
} else {
textView?.resignFirstResponder()
}
}
}

extension MultiLineTextInputTableViewCell: UITextViewDelegate {
func textViewDidChange(textView: UITextView) {

let size = textView.bounds.size
let newSize = textView.sizeThatFits(CGSize(width: size.width, height: CGFloat.max))

// Resize the cell only when cell's size is changed
if size.height != newSize.height {
UIView.setAnimationsEnabled(false)
tableView?.beginUpdates()
tableView?.endUpdates()
UIView.setAnimationsEnabled(true)

if let thisIndexPath = tableView?.indexPathForCell(self) {
tableView?.scrollToRowAtIndexPath(thisIndexPath, atScrollPosition: .Bottom, animated: false)
}
}
}

这里一切都很好,但我添加了一个转发任何内容的功能,为此我使用了这种方法:-

 forwardNoteAction = UITableViewRowAction(style: .Normal, title: "Forward"){ action, index in
let cell = tableView.cellForRowAtIndexPath(indexPath) as! NotesTableViewCell

if self.searchBar.text == "" {


let object: PFObject = self.noteObjects.objectAtIndex(indexPath.row) as! PFObject
let postsObjID = object.objectId!
let query = PFQuery(className: "Notes")
query.fromLocalDatastore()

query.getObjectInBackgroundWithId(postsObjID) {
(objectViewes, error) -> Void in
if error != nil {
print(error)
} else {


self.forwardObject = object
print(self.forwardObject)
//object.pinInBackground()

self.performSegueWithIdentifier("forwardNoteSegue", sender: nil)
self.tableView.deselectRowAtIndexPath(indexPath, animated: true)


}

我将内容放入变量self.forwardObject中,并在传递self.forwardObject之后使用segue forwardNoteSegue传递该变量用于填充我的 tableView 的内容(这是一个表单,由 textView 和 TextField 组成),但是当我这样做时,我的 textView 不会根据该 textView 内的内容增加其高度,

我想要的是,当我们使用“textView.text = CopyContent”时,textView 应该增加其高度,与我们手动在 textView 中输入任何内容时相同

为了正确理解我的问题,请查看上传的视频(上面提供了链接)

如果我的问题无法理解,请告诉我,我会解决它

谢谢

最佳答案

当您以编程方式修改textview的内容时,您需要手动调用textViewDidChange。

这记录在 UITextviewDelegate 的方法描述中:

The text view calls this method in response to user-initiated changes to the text. This method is not called in response to programmatically initiated changes.

关于ios - 将字符串填充到 textView 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34689725/

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