聊天气泡Cocoa

4
我一直在尝试创建一个聊天气泡,已经有一个月了...(你知道的,就像iChat或Tweetie中的那个)。在某个时候,我找到了一篇帖子,说我可以使用Twitterfon的源代码...我确实这样做了。但是由于几个原因,我卡住了。什么原因呢?苹果似乎没有实现计算rect大小所需的所有方法。例如:NSTextField没有实现一个允许我给出NSRect的方法,以便它计算最佳大小。事实上,Tweetie的气泡矩形总是完美的。我联系了作者询问他是如何做到的,但我没有得到回复。虽然我理解,因为它被用于商业应用程序。我想随着iPhone SMS应用程序(以及iChat或包括聊天气泡的任何应用程序)的普及,可能会有人在OS X上实现它,并将其开源。我经验不太丰富,主要是因为我没有时间(学校),所以我已经为此工作了一个月,但没有找到解决方案。
如果有人在Cocoa上创建了这个东西,能否请他们解释一下他们的解决方案?或者更好的是,展示一些代码...
3个回答

6

AppKit NSString补充功能具有用于绘制字符串的方法,对于更高级的目的,您可以使用NSLayoutManager。有关更多信息,请参见文本布局编程指南


好的,谢谢。你知道有没有任何演示实现的代码片段吗?我已经到处寻找了。 - Alexandre Cassagne
Jerry Krinock的NS(Attributed)String+Geometrics类别可能是您需要的:http://www.sheepsystems.com/sourceCode/sourceStringGeometrics.html - Rob Keniger
谢谢irsk。我成功使用nslayoutmanager做了一些看起来不错的事情,但是遇到了一个问题:如果在聊天气泡中有太多文本,文本会开始降低它应该绘制的边距。我该如何解决这个问题?再次感谢那些帮助过我的人。 完成后,我会尝试发布代码。 - Alexandre Cassagne

1
或者你可以使用WebKit和HTML/CSS。我相信这就是Adium实现他们的即时消息主题的方式。

1

查看BubbleThingie示例代码,了解如何进行图像遮罩。它还提供了使用UIButton或UILabel创建文本气泡的示例,并执行所有大小计算。它还允许将气泡着色为任何颜色。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接