Visual_Novel_iOS/crush/Crush/Src/Components/UI/TextViews/CLTextView.swift

53 lines
1.5 KiB
Swift

//
// CLTextView.swift
// Crush
//
// Created by Leon on 2025/7/15.
//
import Foundation
import IQTextView
class CLTextView: IQTextView{
// MARK: - Properties
private var recordHeightBlock: ((CGRect) -> Void)?
// MARK: - Public Methods
func updateByPlaceholderSize(_ block: @escaping (CGRect) -> Void) {
recordHeightBlock = block
}
func sendTextChangedNoti(){
NotificationCenter.default.post(
name: UITextView.textDidChangeNotification,
object: self)
}
// MARK: - Overrides
override func layoutSubviews() {
super.layoutSubviews()
if let recordHeightBlock = recordHeightBlock {
let realFrame = placeholderLabel.frame
let placeholderShowRect = CGRect(x: realFrame.origin.x, y: realFrame.origin.y, width: realFrame.size.width, height: realFrame.size.height + realFrame.origin.y)
recordHeightBlock(placeholderShowRect)
}
}
// override func paste(_ sender: Any?) {
// if let pasteboardString = UIPasteboard.general.string?.filterGarbledString {
// let nowString = "\(text ?? "")\(pasteboardString)"
// text = nowString
// delegate?.textViewDidChange?(self)
//
// }
// }
}
// MARK: - Extensions
extension String {
var filterGarbledString: String? {
// Assuming filterGarbledString removes invalid characters; implement as needed
return self
}
}