mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
52 lines
1.5 KiB
Swift
52 lines
1.5 KiB
Swift
import Foundation
|
|
import UIKit
|
|
import AsyncDisplayKit
|
|
|
|
public class EditableTextNode: ASEditableTextNode {
|
|
override public var keyboardAppearance: UIKeyboardAppearance {
|
|
get {
|
|
return super.keyboardAppearance
|
|
}
|
|
set {
|
|
guard newValue != self.keyboardAppearance else {
|
|
return
|
|
}
|
|
super.keyboardAppearance = newValue
|
|
self.textView.reloadInputViews()
|
|
}
|
|
}
|
|
|
|
public var isRTL: Bool {
|
|
if let text = self.textView.text, !text.isEmpty {
|
|
let tagger = NSLinguisticTagger(tagSchemes: [.language], options: 0)
|
|
tagger.string = text
|
|
|
|
let lang = tagger.tag(at: 0, scheme: .language, tokenRange: nil, sentenceRange: nil)
|
|
if let lang = lang?.rawValue, lang.contains("he") || lang.contains("ar") || lang.contains("fa") {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
|
|
public extension UITextView {
|
|
var numberOfLines: Int {
|
|
let layoutManager = self.layoutManager
|
|
let numberOfGlyphs = layoutManager.numberOfGlyphs
|
|
var lineRange: NSRange = NSMakeRange(0, 1)
|
|
var index = 0
|
|
var numberOfLines = 0
|
|
|
|
while index < numberOfGlyphs {
|
|
layoutManager.lineFragmentRect(forGlyphAt: index, effectiveRange: &lineRange)
|
|
index = NSMaxRange(lineRange)
|
|
numberOfLines += 1
|
|
}
|
|
return numberOfLines
|
|
}
|
|
}
|