我在 android 中有一个自定义虚拟键盘,单击按钮时会出现该键盘。
如果我keyPreviewLayout在语句中设置 aandroid:keyPreviewLayout="@layout/mykeypreviewlayout"
并res/layout/mykeypreviewlayout.xml在运行时包含一些布局语句,当触摸自定义软键盘上的某个键时,应用程序会崩溃。
以下是代码片段: 以下来自主 xml 文件。
<LinearLayout android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_width="wrap_content">
<android.inputmethodservice.KeyboardView
android:id="@+id/keyboardView" android:visibility="gone"
android:focusable="true" android:focusableInTouchMode="true"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:keyPreviewLayout="@layout/mykeypreviewlayout"
android:layout_weight="0" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是来自'res/layout/mykeypreviewlayout.xml的xml代码
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:textColor="@color/black"> </TextView>
Run Code Online (Sandbox Code Playgroud)
如果从上面的 KeyboardView 布局中删除设置 keyPreviewLayout attr 的行,则应用程序正常运行。但是,当按键反馈预览窗口在按下的字符上方弹出时,该窗口是空白的,并且没有显示任何字符——只出现一个带有白色背景的小矩形字符大小的弹出窗口。
如果我添加设置 keyPreviewLayout 的行,那么当在软键盘上触摸某个键时应用程序会崩溃。
这是 logcat 的堆栈跟踪的转储(相关的前几行)显示崩溃发生在 KeyboardView.java 内
04-17 07:41:47.346: E/AndroidRuntime(11901): FATAL EXCEPTION: main
04-17 07:41:47.346: E/AndroidRuntime(11901): java.lang.NullPointerException
04-17 07:41:47.346: E/AndroidRuntime(11901): at android.inputmethodservice.KeyboardView.showKey(KeyboardView.java:918)
04-17 07:41:47.346: E/AndroidRuntime(11901): at android.inputmethodservice.KeyboardView.access$100(KeyboardView.java:65)
04-17 07:41:47.346: E/AndroidRuntime(11901): at android.inputmethodservice.KeyboardView$1.handleMessage(KeyboardView.java:251)
04-17 07:41:47.346: E/AndroidRuntime(11901): at android.os.Handler.dispatchMessage(Handler.java:99)
04-17 …Run Code Online (Sandbox Code Playgroud) 我需要检查自定义键盘扩展的完全访问权限。我找到了此链接。
它说我们可以检查App组。我有一个名为“ group.TTT.TGroup”的应用程序组。它在主应用程序和自定义键盘之间共享访问权限。
然后,我这样检查。问题是我总是可以访问它(总是有array或error = null)。是因为我共享相同的数据吗?但是,如果我的应用程序使用另一个应用程序组,而扩展程序使用另一个应用程序组,则我绝对不能访问它。我可以知道怎么做吗?
NSFileManager* fileManager = [NSFileManager defaultManager];
NSString *path = [fileManager containerURLForSecurityApplicationGroupIdentifier:@"group.TTT.TGroup"].path;
NSError *error;
NSArray *arr = [fileManager contentsOfDirectoryAtPath:path error:&error];
NSLog(@" arr is %@",arr);
if (arr == nil || !arr) //can check error also
accessOn = NO;
else accessOn = YES;
Run Code Online (Sandbox Code Playgroud) objective-c ios8 ios-app-extension ios-app-group custom-keyboard
我期待为iPhone,iPad创建自定义键盘.我已成功将短语和表情符号集成到键盘中,但无法知道如何在键盘中添加贴纸.
谁知道如何添加?
谢谢.
相当新的iOS开发,请原谅我提出一些可能非常明显的事情.众所周知,键盘类型设置为.NumberPad的UITextField键盘如下所示......
我想做的是用减号替换左下角的空白区域.这是可能的,还是需要编写一个完整的自定义键盘来实现这一目标?
真的很感激帮助.
iOS 10中添加了一个新API,用于显示用户可以切换到的其他键盘列表 - 用户在系统键盘上长按地球仪时显示的相同列表.该功能的声明如下:
func handleInputModeList(from view: UIView, with event: UIEvent)
我的问题是,生成UIEvent供应的正确方法是什么?我打算用a来调用这个函数,UILongPressGestureRecognizer但这个API没有透露UIEvents.
我正在学习如何为Android设备创建自定义键盘.我使用的是Android Studio 2.1.2.程序中没有任何活动,因为您必须在语言和输入设置中激活键盘.
当我运行该程序时,我收到此错误:"无法识别启动活动:启动活动时未找到默认活动错误"
我在网站上发布但没有得到回应.我按照教程一步一步地查看了几天.我是Android Studio和Android应用程序的新手,想知道是否有人知道如何帮助我.
这是我关注的网站的链接:http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615
android soft-keyboard android-softkeyboard android-studio custom-keyboard
我正在制作自定义键盘。键盘上的Delete键可以很好地单击。但是长按不起作用。我想对删除键进行长按,以便在用户按住Delete键时,键盘像标准ios键盘一样连续删除。我提到一对夫妇#2的解决方案,喜欢- /sf/answers/1836441351/, /sf/answers/1794331941/,https://stackoverflow.com/a/ 30711421/6077720
但这对我没有用。我也尝试了这段代码:
override func viewDidLoad() {
super.viewDidLoad()
textDocument = self.textDocumentProxy
var longPress = UILongPressGestureRecognizer(target: self, action: #selector(self.longPress))
self.deleteKeyPressed.addGestureRecognizer(longPress)
}
func longPress(gesture: UILongPressGestureRecognizer) {
if gesture.state == .Ended {
print("Long Press")
self.textDocumentProxy.deleteBackward()
}
}
Run Code Online (Sandbox Code Playgroud)
但是在编写此代码后,我的键盘不会仅出现。谁能帮帮我吗?
我最近上传了一个应用程序到应用程序商店,它被拒绝了.拒绝的原因是.
"包含自定义键盘扩展程序的应用必须具有[英语]的隐私权政策网址.如果您的应用未提供自定义键盘,请从您的应用中删除自定义键盘扩展程序并上传新的二进制文件."
custom-keyboard ×10
ios ×6
objective-c ×3
swift ×3
android ×2
ios8 ×2
app-store ×1
iphone ×1
keyboard ×1
swift2 ×1
uilexicon ×1
uitextfield ×1