mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Various fixes
This commit is contained in:
parent
8fe68fd1ed
commit
385e212f3f
@ -935,8 +935,9 @@ private class TimeInputView: UIView, UIKeyInput {
|
||||
return result
|
||||
}
|
||||
|
||||
var didReset = false
|
||||
var length: Int = 4
|
||||
|
||||
private var didReset = false
|
||||
private let nonDigits = CharacterSet.decimalDigits.inverted
|
||||
func insertText(_ text: String) {
|
||||
if text.rangeOfCharacter(from: nonDigits) != nil {
|
||||
@ -948,7 +949,7 @@ private class TimeInputView: UIView, UIKeyInput {
|
||||
}
|
||||
var updatedText = self.text
|
||||
updatedText.append(text)
|
||||
self.text = updatedText
|
||||
self.text = String(updatedText.suffix(length))
|
||||
self.textUpdated?(self.text)
|
||||
}
|
||||
|
||||
@ -964,6 +965,20 @@ private class TimeInputView: UIView, UIKeyInput {
|
||||
}
|
||||
|
||||
private class TimeInputNode: ASDisplayNode {
|
||||
var length: Int {
|
||||
get {
|
||||
if let view = self.view as? TimeInputView {
|
||||
return view.length
|
||||
} else {
|
||||
return 4
|
||||
}
|
||||
}
|
||||
set {
|
||||
if let view = self.view as? TimeInputView {
|
||||
view.length = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
var text: String {
|
||||
get {
|
||||
if let view = self.view as? TimeInputView {
|
||||
@ -1395,6 +1410,8 @@ private final class TimePickerNode: ASDisplayNode {
|
||||
self.hoursNode.isHidden = false
|
||||
self.minutesNode.isHidden = false
|
||||
}
|
||||
|
||||
self.inputNode.length = 2
|
||||
case .minutes:
|
||||
colonColor = self.theme.textColor
|
||||
self.colonNode.alpha = 0.35
|
||||
@ -1422,6 +1439,8 @@ private final class TimePickerNode: ASDisplayNode {
|
||||
self.hoursNode.isHidden = false
|
||||
self.minutesNode.isHidden = false
|
||||
}
|
||||
|
||||
self.inputNode.length = 2
|
||||
case .all:
|
||||
colonColor = self.theme.accentColor
|
||||
self.colonNode.alpha = 1.0
|
||||
@ -1449,6 +1468,8 @@ private final class TimePickerNode: ASDisplayNode {
|
||||
self.hoursNode.isHidden = false
|
||||
self.minutesNode.isHidden = false
|
||||
}
|
||||
|
||||
self.inputNode.length = 4
|
||||
}
|
||||
|
||||
if let size = self.validLayout {
|
||||
|
@ -487,6 +487,10 @@ public class ItemListSingleLineInputItemNode: ListViewItemNode, UITextFieldDeleg
|
||||
var text = textField.text ?? ""
|
||||
text.replaceSubrange(text.index(text.startIndex, offsetBy: range.lowerBound) ..< text.index(text.startIndex, offsetBy: range.upperBound), with: result)
|
||||
textField.text = text
|
||||
if case .username = item.type {
|
||||
text = text.folding(options: .diacriticInsensitive, locale: .current).replacingOccurrences(of: " ", with: "_")
|
||||
textField.text = text
|
||||
}
|
||||
if let startPosition = textField.position(from: textField.beginningOfDocument, offset: range.lowerBound + result.count) {
|
||||
let selectionRange = textField.textRange(from: startPosition, to: startPosition)
|
||||
DispatchQueue.main.async {
|
||||
@ -497,6 +501,24 @@ public class ItemListSingleLineInputItemNode: ListViewItemNode, UITextFieldDeleg
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
if let item = self.item, case .username = item.type {
|
||||
let cleanString = string.folding(options: .diacriticInsensitive, locale: .current).replacingOccurrences(of: " ", with: "_")
|
||||
if cleanString != string {
|
||||
var text = textField.text ?? ""
|
||||
text.replaceSubrange(text.index(text.startIndex, offsetBy: range.lowerBound) ..< text.index(text.startIndex, offsetBy: range.upperBound), with: cleanString)
|
||||
textField.text = text
|
||||
if let startPosition = textField.position(from: textField.beginningOfDocument, offset: range.lowerBound + cleanString.count) {
|
||||
let selectionRange = textField.textRange(from: startPosition, to: startPosition)
|
||||
DispatchQueue.main.async {
|
||||
textField.selectedTextRange = selectionRange
|
||||
}
|
||||
}
|
||||
self.textFieldTextChanged(textField)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user