2016-12-09 10 views
0

iMessageに似た、Mac OS用のチャットアプリケーションをビルドしています。バブルでサイズ変更可能なテキストビューを実装するにはどうしたらよいでしょうか。つまり、サイズを変更すると、チャットウィンドウの泡がテキストのサイズに変わります。任意のアイデア、リンクは非常に便利です。助けてくれてありがとう)サイズ変更可能な泡のあるOS Xチャットアプリ

+0

こんにちは、JSQMessageViewControllerのディスカッションに基づいて、私はMacOS上で動作するUIのようなiMessageを持つことができる少しのトリックを追加すると思います。このスレッドを確認してください:https://github.com/jessesquires/JSQMessagesViewController/issues/1929 これはhttp://chameleonproject.org/ – Fennec

答えて

1

テキストのサイズを変更するには、自動レイアウトを使用します。 MYBubbleViewを含むNSScrollViewがNSTextViewを含む場合、スクロールビューのコンテンツビューとバブルビューのプロパティのleftAnchorrightAnchorプロパティを使用して、NSLayoutConstraintを追加し、テキストビューとバブルビューのすべてのエッジ間に制約を追加できます。その後、バブルビューをトップ/プレビューに固定します。

また、NSTextViewをラップするように設定してください。テキストビューの本来のサイズの幅は、幅を塗りつぶすように設定され、内在する高さはテキスト全体に収まるように設定されます。

は、私が以前にそれがバブルを描画についてだと思ったので、私は最初にこの答えを与えた:

あなたはMessages.appを見れば、あなたは彼らが円形泡じゃないことがわかります。基本的には、互いに重ね合わせたいくつかの図形で構成されています。丸みを帯びた四角形と、先端のベジェ曲線。

テキストのNSTextViewを取り、丸みのある四角形とそのdrawRectメソッドの先端を描画するカスタムビューのサブビューにし、自動レイアウトの制約を使用してバブルビューのサイズを変更できるようにする必要がありますテキストビューとウィンドウ幅のテキストビューを使用します。

また、バブルビューのホストに塗りつぶしと丸みのあるコーナーを持つCALayerと、チップのイメージ(またはチップのaCAShapeLayer)を持つこともできますが、drawRectは簡単なアプローチです。

+0

自体が大きな問題ではなく、実際の問題はテキストのサイズ変更です。ウィンドウのサイズを変更すると、泡のテキストのサイズも変更されるはずです – user3092701

関連する問題