如何使用 swiftui 创建表情符号键盘?
Posted
技术标签:
【中文标题】如何使用 swiftui 创建表情符号键盘?【英文标题】:How to create a emoji keyboard with swiftui? 【发布时间】:2020-01-21 04:25:41 【问题描述】:我似乎不知道如何在 swiftui 中创建表情符号键盘。有没有办法用表情符号构建一个附加到键盘的文本字段?
I'm getting 4 errors and this is the link to the photo
【问题讨论】:
您必须为此使用 UIKit 并使 UIViewRepresentable。通过这样做,您可以在 SwiftUI 中使用您的 Textfield。要制作表情符号键盘文本字段,您可以参考这个答案 - https://***.com/questions/11382753/change-the-keyboard-layout-to-emoji/44753740#44753740 要制作 UIViewRepresentale 类,您可以从这里获得帮助 - https://gist.github.com/unnamedd/9346e1b0205ed6e2d09bf4709229a029 【参考方案1】:请试试这个。希望对您有所帮助。
import SwiftUI
struct EmojiTF: View
@State var emojiText = ""
var body: some View
VStack(spacing: 10)
Text("Emoji Pad:")
.font(.body)
.foregroundColor(.gray)
TextFieldWrapperView(text: self.$emojiText)
.background(Color.gray)
.frame(width: 200, height: 50)
.frame(height: 40)
struct TextFieldWrapperView: UIViewRepresentable
@Binding var text: String
func makeCoordinator() -> TFCoordinator
TFCoordinator(self)
extension TextFieldWrapperView
func makeUIView(context: UIViewRepresentableContext<TextFieldWrapperView>) -> UITextField
let textField = EmojiTextField()
textField.delegate = context.coordinator
return textField
func updateUIView(_ uiView: UITextField, context: Context)
class TFCoordinator: NSObject, UITextFieldDelegate
var parent: TextFieldWrapperView
init(_ textField: TextFieldWrapperView)
self.parent = textField
// func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
// if let value = textField.text
// parent.text = value
// parent.onChange?(value)
//
//
// return true
//
class EmojiTextField: UITextField
// required for ios 13
override var textInputContextIdentifier: String? "" // return non-nil to show the Emoji keyboard ¯\_(ツ)_/¯
override var textInputMode: UITextInputMode?
for mode in UITextInputMode.activeInputModes
if mode.primaryLanguage == "emoji"
return mode
return nil
struct EmojiTF_Previews: PreviewProvider
static var previews: some View
EmojiTF()
【讨论】:
我遇到了错误。我已经发布了上面的照片。 好的。我认为已经有一些带有协调器名称的类可用。我已经更新了我的代码,请试试这个。很抱歉给您带来不便。 @shraddha11,这个问题也有解决方案吗,***.com/q/71234010/15307343以上是关于如何使用 swiftui 创建表情符号键盘?的主要内容,如果未能解决你的问题,请参考以下文章