mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-27 15:59:58 +00:00
48 lines
1.3 KiB
Swift
48 lines
1.3 KiB
Swift
import Foundation
|
|
import AsyncDisplayKit
|
|
|
|
public final class TextFieldNodeView: UITextField {
|
|
public var didDeleteBackwardWhileEmpty: (() -> Void)?
|
|
|
|
var fixOffset: Bool = true
|
|
|
|
override public func editingRect(forBounds bounds: CGRect) -> CGRect {
|
|
return bounds.offsetBy(dx: 0.0, dy: 0.0).integral
|
|
}
|
|
|
|
override public func textRect(forBounds bounds: CGRect) -> CGRect {
|
|
return bounds.offsetBy(dx: 0.0, dy: 0.0).integral
|
|
}
|
|
|
|
override public func placeholderRect(forBounds bounds: CGRect) -> CGRect {
|
|
return self.editingRect(forBounds: bounds.offsetBy(dx: 0.0, dy: self.fixOffset ? 0.0 : 0.0))
|
|
}
|
|
|
|
override public func deleteBackward() {
|
|
if self.text == nil || self.text!.isEmpty {
|
|
self.didDeleteBackwardWhileEmpty?()
|
|
}
|
|
super.deleteBackward()
|
|
}
|
|
}
|
|
|
|
public class TextFieldNode: ASDisplayNode {
|
|
public var textField: TextFieldNodeView {
|
|
return self.view as! TextFieldNodeView
|
|
}
|
|
|
|
public var fixOffset: Bool = true {
|
|
didSet {
|
|
self.textField.fixOffset = self.fixOffset
|
|
}
|
|
}
|
|
|
|
override public init() {
|
|
super.init()
|
|
|
|
self.setViewBlock({
|
|
return TextFieldNodeView()
|
|
})
|
|
}
|
|
}
|