Don't focus on option text when losing focus

This commit is contained in:
Ali
2020-01-17 22:04:48 +04:00
parent 8d64864f5e
commit 8be897ea6c
2 changed files with 20 additions and 12 deletions

View File

@@ -23,7 +23,7 @@ class CreatePollOptionItem: ListViewItem, ItemListItem {
let editing: CreatePollOptionItemEditing
let sectionId: ItemListSectionId
let setItemIdWithRevealedOptions: (Int?, Int?) -> Void
let updated: (String) -> Void
let updated: (String, Bool) -> Void
let next: (() -> Void)?
let delete: (Bool) -> Void
let canDelete: Bool
@@ -31,7 +31,7 @@ class CreatePollOptionItem: ListViewItem, ItemListItem {
let toggleSelected: () -> Void
let tag: ItemListItemTag?
init(presentationData: ItemListPresentationData, id: Int, placeholder: String, value: String, isSelected: Bool?, maxLength: Int, editing: CreatePollOptionItemEditing, sectionId: ItemListSectionId, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, updated: @escaping (String) -> Void, next: (() -> Void)?, delete: @escaping (Bool) -> Void, canDelete: Bool, focused: @escaping (Bool) -> Void, toggleSelected: @escaping () -> Void, tag: ItemListItemTag?) {
init(presentationData: ItemListPresentationData, id: Int, placeholder: String, value: String, isSelected: Bool?, maxLength: Int, editing: CreatePollOptionItemEditing, sectionId: ItemListSectionId, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, updated: @escaping (String, Bool) -> Void, next: (() -> Void)?, delete: @escaping (Bool) -> Void, canDelete: Bool, focused: @escaping (Bool) -> Void, toggleSelected: @escaping () -> Void, tag: ItemListItemTag?) {
self.presentationData = presentationData
self.id = id
self.placeholder = placeholder
@@ -182,7 +182,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode,
}
func editableTextNodeDidFinishEditing(_ editableTextNode: ASEditableTextNode) {
self.editableTextNodeDidUpdateText(editableTextNode)
self.internalEditableTextNodeDidUpdateText(editableTextNode, isLosingFocus: true)
self.item?.focused(false)
}
@@ -213,6 +213,10 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode,
}
func editableTextNodeDidUpdateText(_ editableTextNode: ASEditableTextNode) {
self.internalEditableTextNodeDidUpdateText(editableTextNode, isLosingFocus: false)
}
private func internalEditableTextNodeDidUpdateText(_ editableTextNode: ASEditableTextNode, isLosingFocus: Bool) {
if let item = self.item {
let text = self.textNode.attributedText ?? NSAttributedString()
@@ -226,11 +230,11 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode,
if text.string != updatedAttributedText.string {
self.textNode.attributedText = updatedAttributedText
}
item.updated(updatedText)
item.updated(updatedText, !isLosingFocus && editableTextNode.isFirstResponder())
if hadReturn {
if let next = item.next {
next()
} else {
} else if !isLosingFocus {
editableTextNode.resignFirstResponder()
}
}