Wir können Gerät virtuelle Tastatur auch wenn eine Bluetooth-Tastatur angeschlossen ist. Wir müssen inputAccessoryView
dafür verwenden.
Wir brauchen unterhalb Code in App delegate.h
@property (strong, nonatomic) UIView *inputAccessoryView;
hinzufügen unter Benachrichtigungen in hinzufügen - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Methode in delegate.m
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldBegan:) name:UITextFieldTextDidBeginEditingNotification object:nil];
Dies ruft unten Methode, wenn wir konzentrieren auf einem 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];
}
und der Code für "forceKeyboard" ist,
-(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);
}
Dies funktioniert für uns in Ordnung. Wir verwenden ein verstecktes Textfeld, um Eingaben von der Bluetooth-Tastatur zu erhalten, und für alle anderen Textfelder verwenden wir die Geräte-virtuelle Tastatur, die unter Verwendung von inputAccessoryView
angezeigt wird.
Bitte lassen Sie mich wissen, wenn dies hilft und wenn Sie weitere Informationen benötigen.
Sie eine Lösung gefunden? Selbes Problem hier! – kokemomuke