Skip to content

Commit 2380fd5

Browse files
authored
Merge pull request synonymdev#217 from synonymdev/fix/text-editor-not-hiding
fix: Dissmiss keyboard in TextEditor
2 parents 44d4d8b + 717d162 commit 2380fd5

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import SwiftUI
2+
3+
private struct DismissKeyboardOnReturnModifier: ViewModifier {
4+
@Binding var text: String
5+
var isFocused: FocusState<Bool>.Binding
6+
7+
func body(content: Content) -> some View {
8+
content
9+
.onChange(of: text) { newValue in
10+
guard isFocused.wrappedValue else { return }
11+
if newValue.last == "\n" {
12+
text = newValue.trimmingCharacters(in: .whitespacesAndNewlines)
13+
isFocused.wrappedValue = false
14+
}
15+
}
16+
}
17+
}
18+
19+
extension View {
20+
func dismissKeyboardOnReturn(text: Binding<String>, isFocused: FocusState<Bool>.Binding) -> some View {
21+
modifier(DismissKeyboardOnReturnModifier(text: text, isFocused: isFocused))
22+
}
23+
}

Bitkit/Views/Wallets/Receive/ReceiveEdit.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,8 @@ struct ReceiveEdit: View {
5353
.scrollContentBackground(.hidden)
5454
.padding(EdgeInsets(top: -8, leading: -5, bottom: -5, trailing: -5))
5555
.frame(minHeight: 30, maxHeight: 50)
56-
.onSubmit {
57-
isNoteEditorFocused = false
58-
}
56+
.dismissKeyboardOnReturn(text: $note, isFocused: $isNoteEditorFocused)
57+
.accessibilityValue(note)
5958
.accessibilityIdentifier("ReceiveNote")
6059
}
6160
.padding()

Bitkit/Views/Wallets/Send/SendEnterManuallyView.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ struct SendEnterManuallyView: View {
3030
.font(.custom(Fonts.bold, size: 22))
3131
.foregroundColor(.textPrimary)
3232
.accentColor(.brandAccent)
33+
.submitLabel(.done)
34+
.dismissKeyboardOnReturn(text: $text, isFocused: $isTextEditorFocused)
35+
.accessibilityValue(text)
3336
.accessibilityIdentifier("RecipientInput")
3437
}
3538
.background(Color.white06)

0 commit comments

Comments
 (0)