diff --git a/RiotSwiftUI/Modules/Common/Extensions/View.swift b/RiotSwiftUI/Modules/Common/Extensions/View.swift new file mode 100644 index 000000000..2ab99f884 --- /dev/null +++ b/RiotSwiftUI/Modules/Common/Extensions/View.swift @@ -0,0 +1,24 @@ +// +// Copyright 2022 New Vector Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import UIKit +import SwiftUI + +extension View { + func hideKeyboard() { + UIApplication.shared.vc_closeKeyboard() + } +} diff --git a/RiotSwiftUI/Modules/Common/Util/SearchBar.swift b/RiotSwiftUI/Modules/Common/Util/SearchBar.swift index 63b3863b9..fb05eff95 100644 --- a/RiotSwiftUI/Modules/Common/Util/SearchBar.swift +++ b/RiotSwiftUI/Modules/Common/Util/SearchBar.swift @@ -64,7 +64,7 @@ struct SearchBar: View { Button(action: { self.isEditing = false self.text = "" - UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) + self.hideKeyboard() }) { Text(VectorL10n.cancel) .font(theme.fonts.body) diff --git a/RiotSwiftUI/Modules/UserSessions/UserSessionName/View/UserSessionName.swift b/RiotSwiftUI/Modules/UserSessions/UserSessionName/View/UserSessionName.swift index 5b8518fb5..bc9cb6f7d 100644 --- a/RiotSwiftUI/Modules/UserSessions/UserSessionName/View/UserSessionName.swift +++ b/RiotSwiftUI/Modules/UserSessions/UserSessionName/View/UserSessionName.swift @@ -44,6 +44,7 @@ struct UserSessionName: View { InlineTextButton(VectorL10n.manageSessionNameInfo("%@"), tappableText: VectorL10n.manageSessionNameInfoLink) { + hideKeyboard() viewModel.showBottomSheet = true } .foregroundColor(theme.colors.secondaryContent)