OS X聊天应用程序与可调整大小的气泡

时间:2016-12-09 07:10:16

标签: objective-c xcode macos chat

我正在为Mac OS构建聊天应用程序,类似于iMessage。我想知道,我如何在气泡中实现可调整大小的文本视图。我的意思是,当我调整聊天窗口时,带有文本的气泡会调整大小。任何想法,链接都将非常有用。谢谢你的帮助)

1 个答案:

答案 0 :(得分:1)

要调整文本大小,请使用自动布局。如果您有包含MYBubbleView的{​​{1}}的NSScrollView,则可以使用滚动视图的内容视图的NSTextViewNSLayoutConstraint属性添加leftAnchor个气泡视图的那些,并在文本视图和气泡视图的所有边之间添加约束。然后将气泡视图固定到顶部/上一个视图。

还要确保将rightAnchor设置为换行。将设置文本视图的内在大小的宽度,使其填充宽度,并将设置内在高度以适合整个文本。

我之前认为这是关于绘制气泡的,所以我首先给出了这个答案:

如果你看一下Messages.app,你会发现它们不是圆形气泡。它们基本上由几个彼此重叠的形状组成。带圆角的矩形,加上尖端的bezier路径。

因此,您应该能够为文本获取NSTextView,使其成为自定义视图的子视图,该视图在其drawRect方法中绘制圆角矩形和提示,然后使用自动布局约束使您的气泡视图调整大小文本视图和窗口宽度的文本视图。

你可能还可以让气泡视图主持一个带有填充和圆角的CALayer,另外一个带有尖端图像(或者提示的aCAShapeLayer),但是drawRect是更容易的方法。