gpt4 book ai didi

ios - 我想用蓝牙设备强制打开键盘

转载 作者:技术小花猫 更新时间:2023-10-29 10:48:47 24 4
gpt4 key购买 nike

我有一个蓝牙条形码设备。如果将蓝牙设备连接到 iPhone,我无法使用 iPhone 键盘写任何东西。您已经知道 iPhone 键盘没有显示,因为蓝牙设备被识别为键盘。

但是!!!当 iphone 与蓝牙设备连接时,我必须通过键盘在文本框中写一些东西。

请告诉我该怎么做! :)谢谢~

最佳答案

即使连接了蓝牙键盘,我们也可以显示设备虚拟键盘。为此,我们需要使用 inputAccessoryView

我们需要在app delegate.h中添加如下代码

@property (strong, nonatomic) UIView *inputAccessoryView;

delegate.m 中的 (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中添加以下通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldBegan:) name:UITextFieldTextDidBeginEditingNotification object:nil];

当我们关注 textField 时,这将调用下面的方法。

//This function responds to all `textFieldBegan` editing
// we need to add an accessory view and use that to force the keyboards frame
// this way the keyboard appears when the bluetooth keyboard is attached.
-(void) textFieldBegan: (NSNotification *) theNotification
{

UITextField *theTextField = [theNotification object];

if (!inputAccessoryView) {
inputAccessoryView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
[inputAccessoryView setBackgroundColor:[UIColor lightGrayColor]];
}

theTextField.inputAccessoryView = inputAccessoryView;

[self performSelector:@selector(forceKeyboard) withObject:nil afterDelay:0];
}

“forceKeyboard”的代码是,

-(void) forceKeyboard
{
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
inputAccessoryView.superview.frame = CGRectMake(0, 420, screenHeight, 352);

}

这对我们来说效果很好。我们使用隐藏的文本字段从蓝牙键盘获取输入,对于所有其他文本字段,我们使用设备虚拟键盘,该键盘使用 inputAccessoryView 显示。

如果这对您有帮助以及您是否需要更多详细信息,请告诉我。

关于ios - 我想用蓝牙设备强制打开键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19418790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com