it-swarm.com.de

Wie groß ist die Bildschirmtastatur des iPad?

Ich suche hier nach zwei Zahlen: der Höhe im Portrait und der Höhe im Querformat. Antworten Sie nicht in cm oder Zoll, sondern in Pixeln.

50
Erik B

Die Porträthöhe beträgt 264, die Landschaftshöhe 352.

Ich weiß, dass dies eine späte Antwort ist, aber ich bin gerade auf diese Frage gestoßen.

118
thelaws
- (void) keyboardWasShown:(NSNotification *)nsNotification {
    NSDictionary *userInfo = [nsNotification userInfo];
    CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;

    NSLog(@"Height: %f Width: %f", kbSize.height, kbSize.width);
    // Portrait:    Height: 264.000000  Width: 768.000000
    // Landscape:   Height: 352.000000  Width: 1024.000000
}
55
user629328

Die Antwort lautet: es kommt darauf an .

Ich kenne 16 verschiedene Höhen, die die Tastatur annehmen kann, und sie kann sich in jeder Position befinden.

Es ist anders für:

  1. landschaftsportrait, 
  2. webview/Nicht-Webview, 
  3. asiatischer Charakterauswahlstil, reguläre Sprache
  4. split-Tastatur/nicht aufgeteilt

Ich habe ein Bild angehängt, das verschiedene mögliche Konfigurationen zeigt. 

sample ipad keyboard configurations

Anstatt alle 16 Möglichkeiten aufzuzählen, denke ich, möchten Sie UIKeyboardWillShowNotification/UIKeyboardWillHideNotification und UIKeyboardDidChangeFrameNotification (iOS 5.0+) beobachten und dann den Rahmen der Tastatur von diesen Ereignissen abrufen.

28
jcampbell1

Auf dem iPad kann die Tastaturgröße auch von der Sprache abhängen (beispielsweise ist die japanische Tastatur größer). Ein weiterer Grund, es programmgesteuert abzufragen.

17
Kris Van Bael

Sie können die Tastaturhöhe aus dem userInfo - Wörterbuch abrufen, das von der will/did-Tastaturbenachrichtigung angezeigt/verborgen wird, wie von der UIWindow-Klasse ( Referenzhandbuch link ) angegeben. Dies ist ein viel besserer Weg, um die Höhe zu erhalten, als durch die Kodierung, weil Sie die folgenden Vorteile haben:

  • Geräteunabhängigkeit (iPhone/iPod oder iPad)
  • Auflösungsunabhängigkeit (iPhone 3G-Bildschirm/Retina-Display/iPad-Display/zukünftige Displays).
  • Tastaturtyp-/Stilunabhängigkeit (verschiedene Bildschirmtastaturen können unterschiedliche Größen haben).

In der Tat haben die Antworten auf diese Frage, die eine genaue Zahl angeben, höchstwahrscheinlich diese Zahl erhalten, indem sie sich die Ergebnisse ansehen, die in diesem Wörterbuch zurückgegeben werden!

6
James Bedford

Ich habe auf dieser Seite für down ein paar Antworten gestimmt, da diese gefährlich irreführend sind.

Unter iOS 8 können Sie keine fest codierte Tastaturhöhe verwenden .

Hier ist meine App, die auf einem iPhone ausgeführt wird, um meine Gründe dafür anzugeben.

Nimm dein Lineal und sag mir, wie hoch ist die Bildschirmtastatur?

enter image description here

Ahh ... du kannst es nicht tun, oder?

Die Höhe kann variieren, wenn der Benutzer die automatische Eingabeleiste oben auf der Bildschirmtastatur aktiviert (die übrigens ein zweites "keyboardWillShow" - Ereignis auslöst).

Gleiches gilt für die Bildschirmtastatur auf dem iPad.

Fazit: Leute, Sie müssen die Tastaturhöhe in einem keyboardWillShow -Ereignis messen.

Sie werden sonst Probleme treffen.

- (void)keyboardWillShow:(NSNotification *)notification {

    NSDictionary *info = [notification userInfo];
    NSValue *kbFrame = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardFrame = [kbFrame CGRectValue];
    keyboardFrame = [self.view convertRect:keyboardFrame fromView:nil];

    CGFloat heightOfKeyboard = keyboardFrame.size.height;

    NSLog(@"The keyboard is now %d pixels high.", (int)heightOfKeyboard);

}

Übrigens, vergessen Sie diesen Aufruf von convertRect im obigen Code nicht.

Ohne sie hätte ich festgestellt, dass auf einem iPad im Querformat mit iOS 8 die Tastatur manchmal eine Höhe von 1024 Pixel aufweist.

Nur noch eine Sache ...

Heute arbeitete ich an einem benutzerdefinierten Steuerelement, das ich geschrieben hatte und das am unteren Rand des iPhone/iPad-Bildschirms angezeigt wird, und stellte fest, dass ich die Höhe der Bildschirmtastatur nicht berücksichtigt hatte.

Ich wollte keine keyboardWillShow/Hide-Benachrichtigungen hinzufügen, da dieses kleine Steuerelement allgemeiner Natur ist und von jedem meiner Bildschirme aufgerufen werden kann.

Meine Lösung, um die Höhe der Bildschirmtastatur zu ermitteln, bestand darin, die ausgezeichnete Funktion visibleKeyboardHeight des freien Steuerelements SVProgressHUD zu verwenden.

Das Steuerelement also benötigte die Höhe der Bildschirmtastatur, damit die Benachrichtigungsmeldung UIViews vertikal zentriert angezeigt wird.

Es hat wunderbar geklappt. Wenn Sie also do eine schnelle Methode zum Abrufen der Tastaturhöhe benötigen, greifen Sie zu einer Kopie dieses Codes und lesen Sie die SVProgressHUD.m Datei.

SVProgressHUD von GitHub herunterladen

5
Mike Gledhill
3
Dominic

In iOS 7 für iPad sind es 402 für Landscape und 314 für Portrait

2
Max

Ich weiß nicht, was es ist, aber Sie könnten es leicht genug herausfinden.

Surfen Sie auf Ihrem iPad zu einer Seite mit diesem ...

JavaScript

var totalHeight = window.innerHeight;
document.getElementById('what-is-my-height').onclick = function() {
  alert(totalHeight - window.innerHeight); 
};

HTML

<button id="what-is-my-height">Bring up keyboard, then Push me</button>

Klicken Sie auf die Schaltfläche (nachdem Sie die Bildschirmtastatur aufgerufen haben), und die Höhe sollte angezeigt werden. Wiederholen Sie dies für die andere Ausrichtung.

2
alex

Höhen sind: PORTRAIT = 264 LANDSCHAFT = 352

1
bornbnid

In iOS 7 gab es ein Problem, bei dem Höhe und Breite im Querformat nicht vertauscht wurden, das Problem jedoch in iOS 8 behoben wurde.

Hier ist der Code, der immer die Höhe für iOS7 oder iOS8 zurückgibt, wodurch die versionsspezifische Überprüfung in Ihrem Code entfällt.

- (void)keyboardWasShown:(NSNotification*)aNotification
{
    NSDictionary* info = [aNotification userInfo];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
    //Always gives the height as the height is of smaller dimension
    CGFloat height = (kbSize.height>kbSize.width)?kbSize.width:kbSize.height;
}
1
Swaroop S

Ich denke, es gibt mehr Probleme, als in anderen Antworten gelöst werden. Zum Beispiel können Sie mit dieser Tastatur enden:

 enter image description here

Dies geschieht, wenn Sie auf der iPad-Tastatur unter iOS 9 auf die Schaltfläche "Ausblenden" klicken. Diese Tastatur hat noch eine full-Größe in Benachrichtigungsinformationen von Mike Gledhill answer. (In UIKeyboardFrameEndUserInfoKey ist die Höhe der Tastatur höher als 300).

Ich musste den y-Achsenursprung der Tastatur von der Gerätehöhe abziehen, um den korrekten Wert zu erhalten.

- (void)keyboardWillShow:(NSNotification *)notification
    NSDictionary *info = [aNotification userInfo];
    CGRect keyboardFrame = [info[UIKeyboardFrameBeginUserInfoKey] CGRectValue];

    keyboardFrame = [info[UIKeyboardFrameEndUserInfoKey] CGRectValue];
    keyboardFrame = [self.view convertRect:keyboardFrame fromView:nil];
    CGFloat yPosition = keyboardFrame.Origin.y;

    NSInteger height = [UIScreen mainScreen].bounds.size.height - yPosition;
 }   

Funktioniert für mich auf iOS9 mit iPhones und iPads in beiden Ausrichtungen.

0
kraag22