2010-01-11 3 views
4

J'ai essayé de créer une bulle de discussion pendant environ un mois maintenant ... (vous savez, comme celui dans iChat ou Tweetie). À un moment donné, j'ai trouvé un fil qui disait que je pouvais utiliser la source de Twitterfon ... ce que j'ai fait. Mais je suis coincé pour quelques raisons. Lesquels? Apple n'a pas semblé mettre en œuvre toutes les méthodes nécessaires pour calculer la taille du rect. Par exemple: NSTextField n'implémente pas une méthode qui me permet de donner un NSRect afin qu'il calcule la meilleure taille. Le fait est que les bulles de Tweetie sont toujours parfaites. Je lui ai laissé tomber une ligne demandant comment il a fait cela, mais je n'ai pas eu de réponse. Bien que, je comprends, parce qu'il est utilisé dans une application commerciale. Je pensais qu'avec la popularité de l'application SMS de l'iPhone (et iChat, ou de toute application incluant des bulles de discussion), quelqu'un aurait probablement fait une implémentation sur OS X, et l'aurait fait en open source. Je n'ai pas beaucoup d'expérience, et surtout je n'ai pas le temps (l'école), c'est pourquoi je travaille dessus depuis un mois et je n'ai pas trouvé de solution.Chat Bubble Cocoa

Si quelqu'un créait la chose sur Cocoa, pourrait-il expliquer sa solution? Ou mieux encore, montrez du code ...

Répondre

6

Les additions NSString AppKit ont des méthodes pour mesurer les chaînes pour le dessin, et pour des fins plus avancées, vous pouvez utiliser NSLayoutManager. Voir le Text Layout Programming Guide pour plus d'informations.

+0

Ok merci. Connaissez-vous un morceau de code qui démontre la mise en œuvre? J'ai regardé partout –

+0

La catégorie NS (Attributed) String + Geometrics * de Jerry Krinock pourrait être ce que vous cherchez: http://www.sheepsystems.com/sourceCode/sourceStringGeometrics.html –

+0

Merci irsk. J'ai réussi à faire quelque chose qui commence à bien paraître avec nslayoutmanager, mais j'ai un problème qui commence à se poser: si j'ai trop de texte dans la bulle, le texte commence à abaisser la marge. Comment puis-je réparer ça ? merci encore à ceux qui ont aidé Je vais essayer de libérer le code quand c'est fait –

1

Vous pouvez également utiliser WebKit et HTML/CSS. Je crois que c'est ainsi que Adium réalise ses thèmes de messages de messagerie instantanée.

1

Consultez l'exemple de code BubbleThingie par exemple pour savoir comment masquer l'image. Il a également un exemple de comment faire les bulles de texte en utilisant un UIButton ou UILabel et fait tous les calculs de taille. il permet également de colorer les bulles de n'importe quelle couleur.

enter image description here