2009-10-23 7 views
0

Je me demande comment Amazon a fait les boutons contextuels de surbrillance/note dans l'application Kindle. Après avoir lu sur UIPasteboard, UIMenuController, UIResponder, et UIResponderStandardEditActions, je suis en mesure d'activer ou de désactiver les actions d'édition standard (à savoir copier, couper, coller, sélectionner et sélectionner Tout). Cependant, je n'ai pas encore trouvé le moyen d'ajouter une action personnalisée. J'apprécierais vraiment si je pourrais obtenir un pointeur.Comment créer les boutons contextuels Mettre en surbrillance/Note de l'iPhone Kindle

Merci d'avance!

Chris

alt text http://media.sampletheweb.com/wp-content/uploads/kindleapp3.PNG

Edité par balexandre (ajouté image lien à la place)

Répondre

1

Je ne pense pas qu'il y ait une interface publique à ces contrôles, vous auriez probablement au code eux-mêmes. (Ou peut-être comprendre l'API privée, mais c'est une pente glissante.) Je ne suis pas sûr à ce sujet, cependant, peut-être que quelqu'un me prouvera le contraire.

3

Il semble qu'Amazon ait implémenté sa propre vue personnalisée qui imitait l'apparence de UIMenuController. Je crois qu'ils ont fait cela plutôt que d'utiliser SPI parce que si vous cliquez et maintenez sur la cellule Highlight, la flèche ne met pas en évidence, quand il le fait dans le UIMenuController réel.

+0

WhatsApp Inc. a ceci aussi http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=310633997&mt=8 - Je n'ai pas besoin de créer une vue personnalisée pour cela , voici leur image d'application: http://bit.ly/2sWRjQ – balexandre

+0

Plus de preuve qu'ils ont recréé le contrôle est le rayon du recto arrondi ne correspond pas exactement à ce que vous voyez dans la légende UIMenuController réel. –

0

C'est un bon point à propos de la partie flèche du menu contextuel Notes/Surlignage ne mettant pas en surbrillance, donc ils doivent être en train de mettre en œuvre leur propre. Cependant, ils utilisent évidemment un UIWebView, car ils reconnaissent le tapotement et le maintien et ils peuvent mettre le texte en surbrillance, et vous ne pouvez pas obtenir d'événements tactiles depuis un UIWebView, et encore moins obtenir les informations sur ce qui est sélectionné. Alors, comment font-ils cela?

Ce serait très utile pour nous d'être en mesure de faire aussi bien.

+0

Pas directement, mais vous pouvez avoir du code JavaScript dans la vue web pour obtenir ces événements, et il y a une communication bidirectionnelle entre l'application native et le contenu de la vue web .... Ce serait difficile à mettre en œuvre, pour sûr, mais loin d'être impossible. –

-3

la partie javascript peut être gérée avec jQuery, c'est une bibliothèque assez simple et puissante. Je l'utilise pour redimensionner et réorganiser les choses dans une WebView et il fonctionne très bien

:)
Questions connexes