Ich bin auf der Suche nach einer nicht-hackish Lösung, also im Grunde -inputView. Der Teil, über den ich mir nicht sicher bin, ist, wie man ihn wie die normalen Keyboards aussehen lässt, vom Hintergrund bis zu den Tasten. Mir ist klar, dass ich ein Apple Keyboard photoshopen könnte, aber das scheint ein bisschen hackisch zu sein, vor allem wenn Apple (wahrscheinlich nicht, aber immer noch) beschließt, das Aussehen ihrer Tastaturen zu ändern. Ich weiß, dass Numbers ausgezeichnete Arbeit geleistet hat, um zusätzliche Tastaturen herzustellen, die wie Standardsysteme aussehen, und ich würde es gerne so machen (obwohl sie natürlich Zugang zu den gleichen Ressourcen haben, aus denen die Systemtastaturen bestehen, einschließlich möglicher privater Frameworks, usw.)Benutzerdefinierte iPad-Tastatur, die wie die Systemtastaturen aussieht
Antwort
Erstellen Sie einen View-Controller und Xib. Die XIB sollte 1-9,0 haben und Schaltflächen löschen, die IBOutlets in Ihrem Controller zugeordnet sind. Speichern und speichern Sie die Rückgabewertzeichenfolge als Eigenschaft. Sie können Dezimalzahlen usw. hinzufügen, wenn Sie möchten. Speichern Sie im Header einen Bearbeitungsblockabschluss mit einer Eigenschaft (oder erstellen Sie alternativ einen Delegaten oder verwenden Sie eine Benachrichtigung).
@property (copy) void(^valueChangedBlock)(NSString* string);
Auf Ausbesserungs sendet jeder Taste ein Ereignis ein Verfahren wie folgt aus:
- (IBAction) pressKey:(id)sender
{
NSString *toAppend;
// Instead of this switch you can store the values in a dictionary mapped by sender.
switch(sender)
{
case oneButton: [email protected]"1"; break;
case twoButton: [email protected]"2"; break;
...
}
returnValue = [returnValue appendString:toAppend];
valueChanged(returnValue);
}
Offensichtlich ist die Löschtaste ein Zeichen aus dem Ende der Zeichenfolge statt Anhängen entfernen sollte. Anders als beim Erstellen des Controllers und Hinzufügen dieser Ansicht als inputView sollten Sie den Wert "ChangedBlock" hinzufügen und festlegen, dass das Textfeld aktualisiert wird. Vielleicht möchten Sie eine klare benutzerdefinierte Schaltfläche über das Textfeld setzen, um das Feld First Responder zu erstellen, so dass es nicht so erscheint, als ob der Benutzer an irgendeinem Punkt der Zeichenfolge bearbeiten könnte.
I verwendet, um die folgenden:
tenDigitKeyboard.m
-(IBAction)pressedKey:(UIButton *)sender
{
[delegate pressedKey:sender.tag];
}
wo delegieren `ID delegieren definiert ist;
dann in den Delegaten ich tun ...
-(void)pressedKey:(NSInteger)key
{
NSString * bufferString = model.string;
if (key == -1) {//delete
model.string = [bufferString substringWithRange:NSMakeRange(0, [bufferString length]-1)];
}else{
//will need to change the following to lookup key value based on a lookup of the button.tag
model.string = [bufferString stringByAppendingFormat:@"%i",key];
}
[self update];//updates the view
}
bekam ich die Tastatur-Taste Grafik von: http://www.teehanlax.com/blog/iphone-gui-psd-v4/
- 1. Wie erstellt man benutzerdefinierte Funktion in Javascript, die wie eine Punktnotation aussieht? z. B. str.getFirstIndex();
- 2. Mockito Ausnahme in DoThrow, die korrekt aussieht
- 3. Ist eine Schriftart, die wie LED in iPhone aussieht?
- 4. Statusleiste am unteren Fensterrand, die aussieht wie Interface Builder
- 5. Wie kann ich eine uiview erstellen, die aussieht wie die Ansicht in mail.app
- 6. Wie benutzerdefinierte Büroklammer Prozessoren machen die Bildgröße, um die Größe
- 7. Wie wird die standardmäßige Navigationsregisterkartenansicht in die benutzerdefinierte Registerkartenansicht geändert?
- 8. Wie kann die Weiterleitung an die benutzerdefinierte Domäne gestoppt werden?
- 9. Wie füge ich die Konfigurationsumwandlung für die benutzerdefinierte Konfigurationsdatei hinzu?
- 10. Wie man eine Materialdesignvorlage erhält oder eine Website erstellt, die wie eine Google Forumseite aussieht?
- 11. Erstellen Sie eine HTML-Tabelle, die aussieht wie eine Tabelle wie Google Docs
- 12. Wie greife ich das erste Element aus dieser Zeichenfolge, die wie ein Array aussieht?
- 13. Wie verwendet man die benutzerdefinierte Befehlsoption Django?
- 14. wie benutzerdefinierte die Tasten des KNP paginator
- 15. Wie erfolgt die benutzerdefinierte Validierung von FileHelpern?
- 16. Wie wird die benutzerdefinierte Suchleiste angezeigt?
- 17. Python: Benutzerdefinierte Ausnahme, die bestätigt die Regel
- 18. Benutzerdefinierte Animation für die Navigationsschublade
- 19. Warum Sobel Betreiber so aussieht?
- 20. UIPickerView, das aussieht wie UIDatePicker aber mit Sekunden
- 21. Wie kann ich HTML-Padding machen, die in verschiedenen Browsern gleich aussieht?
- 22. Was ist diese Ruby/Rails-Syntax, die wie ein Methodenaufruf aussieht?
- 23. Konvertieren Sie eine Zeichenfolge, die wie ein Array aussieht, in ein tatsächliches Array
- 24. Python - Platzieren einer Zeichenfolge, die aussieht wie JSON auf einem Remote-Server, aber Zitate werden entfernt
- 25. Implementieren eines Listenfelds in WPF, das wie die Ansicht "Songs" in Windows Media Player 11 aussieht?
- 26. Ist es möglich, eine WPF-Registerkartensteuerungsvorlage zu erstellen, die nichts wie ein Registersteuerelement aussieht?
- 27. Sencha Touch: Komponente auf DataView, die aussieht wie List Group Header
- 28. Symfony2 Benutzereinheit, die keine benutzerdefinierte Validierungsklasse akzeptiert
- 29. benutzerdefinierte Inhalte in die Chromecast
- 30. Gesamtauftrag für die benutzerdefinierte Werbebuchung
Hallo Peter, gibt der obige Code in meinem Fall Fehler wie: Pointer sind nicht zulässig Fallwerte. Was ist falsch? Was soll ich machen? Bitte helfen Sie mir –
Ich schrieb diesen Code als ein Beispiel, aber einige Änderungen sind erforderlich. Verwenden Sie if-else-Anweisungen, um zu überprüfen, wer der Absender ist, oder noch besser, speichern Sie die Schaltflächen und ihre resultierenden Werte während der Controller-Initialisierung für eine Einzeilungssuche in der pressKey-Methode in einem Wörterbuch. –