Ich habe iOS 8 Gold Master für das iPhone und das SDK heruntergeladen.
Ich habe die App getestet und sie funktioniert bis auf eine Sache einwandfrei.
Ich habe ein Textfeld, in dem ein Nummernblock angezeigt wird, wenn der Benutzer etwas eingeben möchte. Außerdem wird dem leeren Bereich eine benutzerdefinierte Schaltfläche hinzugefügt, wenn die Tastatur angezeigt wird.
- (void)addButtonToKeyboard
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
// create custom button
UIButton * doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(-2, 163, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
[doneButton addTarget:self action:@selector(saveNewLead:) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
UIWindow * tempWindow = [[[UIApplication sharedApplication] windows]objectAtIndex:1];
UIView* keyboard;
for(int i=0; i<[tempWindow.subviews count]; i++)
{
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard view found; add the custom button to it
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
[keyboard addSubview:doneButton];
} else {
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
}
}
}
Das hat bis jetzt gut funktioniert.
Zunächst erhalte ich folgende Warnung:
Keyplane, das Typ 4 für die Tastatur iPhone-Portrait-NumberPad unterstützt, kann nicht gefunden werden. using 3876877096_Portrait_iPhone-Simple-Pad_Default
dann wird diese benutzerdefinierte Schaltfläche auch nicht angezeigt, was ich aufgrund dieser 2 Zeilen denke:
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
und
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
Irgendwelche Vorschläge?
Ich hatte auch dieses Problem nach dem Update auf die neueste Xcode Beta. Die Einstellungen im Simulator werden aktualisiert, sodass die (externe) Laptop-Tastatur erkannt wurde. Wenn Sie einfach drücken:
iOS Simulator -> Hardware -> Tastatur -> Hardware-Tastatur verbinden
Damit der Eintrag deaktiviert ist, wird die Softwaretastatur erneut angezeigt.
quelle
Der Emulator versucht, einen Ziffernblock auf dem Mac zu finden, dieser wird jedoch nicht gefunden (MacBook Pro, MacBook Air und "normale / kleine" Tastatur haben ihn nicht). Sie können die Option Hardware-Tastatur verbinden deaktivieren oder die Fehlermeldung einfach ignorieren. Dies hat keine negativen Auswirkungen auf die Anwendung.
quelle
Geh einfach zu
Dies wird das Problem beheben.
Ihre MAC-Tastatur funktioniert nicht, nachdem Sie den obigen Schritt ausgeführt haben. Sie müssen eine Simulatortastatur verwenden.
quelle
Ich verwende xcode mit ios 8, deaktiviere einfach die Option zum Verbinden der Harware-Tastatur in deinem Simulator-> Hardware-> Tastatur-> Hardware-Tastatur verbinden.
Dies wird das Problem lösen.
quelle
Ich hatte das gleiche Problem in Xcode 8.1 und iOS 10.1. Was für mich funktionierte, war, in Simulator-> Hardware-> Tastatur zu gehen und das Kontrollkästchen Connect Hardware Keyboard zu deaktivieren.
quelle
Gehen Sie zu Simulator-> Hardware-> Tastatur und deaktivieren Sie Connect Hardware Keyboard.
Das gleiche wie viele Antworten oben, ABER hat sich für mich nicht geändert, bis ich den Simulator beendet und neu gestartet habe. xcode 8.2.1 und Simulator 10.0.
quelle
Führen Sie die App mit dem Simulator aus
iOS Simulator-> Hardware-> Tastatur -> iOS verwendet das gleiche Layout wie OS X.
Dies behebt das Problem, wenn jemand da draußen seine App auf seinem Gerät ausführt
quelle
Ich habe dieselbe Fehlermeldung aus zwei verschiedenen Gründen erhalten, sodass Sie sie Ihrer Debugging-Checkliste hinzufügen können:
Kontext: Xcode 6.4, iOS: 8.4. Ich habe eine Symbolleiste mit benutzerdefinierten
UIBarButton
s zum Laden mitUIKeyboardTypeNumberPad
(Swift :) hinzugefügtUIKeyboardType.numberPad
, nämlich "Fertig" und "+/-". Ich hatte dieses Problem, als:Meine UIToolbar wurde als Eigenschaft deklariert, aber ich hatte vergessen, sie explizit zuzuweisen / zu initiieren.
Ich hatte die letzte Zeile weggelassen
[myCustomToolbar sizeToFit];
, was so klingt, als wäre es dieselbe Familie wie Holdens Antwort (mein Code hier: https://stackoverflow.com/a/32016397/4898050 ).Viel Glück
quelle
In Ihrer iOS-App kann kein Ziffernblock gefunden werden, der an Ihr Betriebssystem X angeschlossen ist. Sie müssen also nur die Option zum Verbinden der Hardwaretastatur in Ihrem Simulator im folgenden Pfad nur zu Testzwecken deaktivieren:
Dadurch wird das oben genannte Problem behoben.
quelle
Ich hatte das gleiche Problem mit dem Verteilungsbereitstellungsprofil. Überprüfen Sie, ob Sie das Entwicklerprofil verwenden
quelle
Warum den langen Code und nicht die UIToolbar verwenden? da die warnung noch bestehen bleibt?
UIToolbar funktioniert für jede iOS-Version. Hier ist mein Beispielcode
quelle
Vielleicht sollten Sie den Rahmen der Schaltfläche zurücksetzen, ich hatte auch ein Problem, und nslog die Ansicht der Tastatur wie folgt:
ios8:
vor 8:
quelle
Okay, hier ist eine einfache Lösung, um die Schaltfläche "Fertig" zum Anzeigen und Arbeiten in einer App in iOS 9, iOS 8 und darunter zu erhalten, wenn ein ähnlicher Fehler aufgetreten ist. Nach dem Ausführen einer App und dem Anzeigen über "Hierarchie der Ansicht" (dh Klicken auf das Symbol "Hierarchie anzeigen" in der Debug-Bereichsleiste, während die App auf dem Gerät ausgeführt wird und Ihre Ansichten im Storyboard überprüft) kann festgestellt werden, dass die Tastatur angezeigt wird andere Fenster in iOS 9 im Vergleich zu iOS 8 und niedrigeren Versionen und müssen berücksichtigt werden. addButtonToKeyboard
Und so können Sie den KeyboardButton von der Tastatur entfernen, wenn Sie möchten.
quelle