8
votes

Clavier d'iPhone personnalisé

J'ai besoin (c'est-à-dire une exigence client) de fournir un clavier personnalisé pour que l'utilisateur tape du texte dans les champs de texte et les zones. J'ai déjà quelque chose qui fait le clavier et appendez le test à un champ de texte, mais j'aimerais le rendre plus générique et l'avoir comme le clavier iPhone standard, c'est-à-dire lorsque TEH Sélectionne un contrôle de texte modifiable. Actuellement, mon contrôleur connaît la cible et la cible est unidable pour empêcher le clavier standard.

Y a-t-il un moyen de connecter le comportement des contrôles de texte afin que j'utilise facilement mon propre clavier?

Merci, Vic


4 commentaires

J'espère que votre client n'a pas l'intention de soumettre cette application (probablement non-non-jeu) à l'App Store ...


Changer un composant de base de l'UI de l'iPhone?


Avez-vous essayé la standard AddTtarget: Action: ForControlvents:? Si oui, comment cela n'a-t-il pas répondu à vos besoins?


Comme je l'ai mentionné ci-dessous, nous ne sommes que des interfaces tactiles du prototypage. Cependant, il semble qu'un peu de restriction empêchant le logiciel à l'aide de leur contrôle d'entrée personnalisé. Je viens de recevoir un appareil et d'être honnête, le clavier est complètement des ordures pour entrer quelque chose de plus qu'un mot ou deux, j'avais pensé à faire un éditeur T9 comme pour une petite application de note pour moi-même.


4 Réponses :


0
votes

Cela dépend de la coutume que vous le souhaitez. J'ai personnellement voulu un clavier numérique uniquement, mais je n'ai pas aimé le tampon de numéro, j'ai donc utilisé le clavier standard et ajouté dans un filtre standard, qui fait partie des options, qui rejette toutes les appuies sur la clé qui ne sont pas des chiffres ou de l'espace. ou supprimer.

Je ne peux pas dire si Apple aimerait cela, et vous allez avoir un temps très difficile à écrire votre propre comportement qui agit comme les autres claviers. Tellement, que cela devrait être déclaré une mauvaise idée.

Mise à jour basée sur votre commentaire, il semble que vous préférez créer une vue avec beaucoup de boutons dessus et déplacez cette vue avec l'option Animate activée. Il pourrait alors trier des coulisses du bas comme un clavier et glisser à nouveau lorsqu'il est rejeté.


1 commentaires

Malheureusement, le clavier dont nous n'avions besoin n'est pas vraiment d'un clavier avec des personnages, il a quelques caractères à ce sujet (le vrai repos pourraient être cachés dans ce mannner) mais il y a des boutons qui font beaucoup plus que de taper un seul char. Vrai, je pourrais ajouter des boutons ailleurs, mais ce serait contre-intuatif et semblant affreux. J'ai déjà le clavier travaillant si nécessaire, j'ai juste besoin de la filer facilement, je souhaitais juste que les trucs touch sur Android étaient aussi stables une cible que l'iPod :-(



7
votes

Tant que vous ne soumettez pas votre application à l'App Store, vous pouvez utiliser une technique appelée méthode Swizzling pour remplacer dynamiquement des méthodes de classes de base au moment de l'exécution. Par exemple: xxx

s'il vous plaît N'utilisez rien de tel dans un code de production. En outre, je n'ai pas vraiment testé cela, donc ymmv.


0 commentaires

11
votes

Voici une idée: Modifiez le clavier existant à vos propres besoins. Tout d'abord, inscrivez-vous pour être averti lorsqu'il apparaît à l'écran: xxx pré>

puis, dans votre MODYKeyboard code> Méthode: p>

- (void)modifyKeyboard:(NSNotification *)notification 
{
    UIView *firstResponder = [[[UIApplication sharedApplication] keyWindow] performSelector:@selector(firstResponder)];

    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows])
        for (UIView *keyboard in [keyboardWindow subviews])
            if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
            {
                MyFancyKeyboardView *customKeyboard = [[MyFancyKeyboardView alloc] initWithFrame: CGRectMake(0, 0, keyboard.frame.size.width, keyboard.frame.size.height);
                [keyboard addSubview: customKeyboard];
                [customKeyboard release];
            }
}


1 commentaires

Une autre idée intéressante, merci, je vais essayer cela aussi, merci.



10
votes

Vous pouvez le faire avec iOS 3.2 ou plus tard. Vérifiez la propriété INPUTVIEW de UITEXTFIELD pour plus de détails.


0 commentaires