我似乎无法找到如何在 swiftui 中创建表情符号键盘。有没有办法构建一个仅包含表情符号的文本字段?
import SwiftUI\n\nstruct EmojiTF: View {\n\n @State var emojiText = ""\n\n\n var body: some View {\n VStack(spacing: 10) {\n Text("Emoji Pad:")\n .font(.body)\n .foregroundColor(.gray)\n\n TextFieldWrapperView(text: self.$emojiText)\n .background(Color.gray)\n .frame(width: 200, height: 50)\n }\n .frame(height: 40)\n }\n}\n\n\nstruct TextFieldWrapperView: UIViewRepresentable {\n\n @Binding var text: String\n\n func makeCoordinator() -> TFCoordinator {\n TFCoordinator(self)\n }\n}\n\nextension TextFieldWrapperView {\n\n\n func makeUIView(context: UIViewRepresentableContext<TextFieldWrapperView>) -> UITextField {\n let textField = EmojiTextField()\n textField.delegate = context.coordinator\n return textField\n }\n\n\n func updateUIView(_ uiView: UITextField, context: Context) {\n\n }\n}\n\nclass TFCoordinator: NSObject, UITextFieldDelegate {\n var parent: TextFieldWrapperView\n\n init(_ textField: TextFieldWrapperView) {\n self.parent = textField\n }\n\n // func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {\n // if let value = textField.text {\n // parent.text = value\n // parent.onChange?(value)\n // }\n //\n // return true\n // }\n}\n\n\nclass EmojiTextField: UITextField {\n\n // required for iOS 13\n override var textInputContextIdentifier: String? { "" } // return non-nil to show the Emoji keyboard \xc2\xaf\\_(\xe3\x83\x84)_/\xc2\xaf\n\n override var textInputMode: UITextInputMode? {\n for mode in UITextInputMode.activeInputModes {\n if mode.primaryLanguage == "emoji" {\n return mode\n }\n }\n return nil\n }\n}\n\nstruct EmojiTF_Previews: PreviewProvider {\n static var previews: some View {\n EmojiTF()\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2760 次 |
| 最近记录: |