2016-12-09 2 views
0

Я создаю приложение чата для Mac OS, похожее на iMessage. Интересно, как я могу реализовать масштабируемые текстовые представления в пузырьках. Я имею в виду, что при изменении размера окна чата окна с текстом будут изменять размер. Любые идеи, ссылки будут очень полезными. Спасибо за помощь)OS X приложение для чата с изменяемыми размерами пузырями

+0

Привет, основанный на обсуждении в JSQMessageViewController, я думаю, добавив немного больше трюков, вы можете использовать iMessage как пользовательский интерфейс, работающий на macOS. Пожалуйста, проверьте эту тему: https://github.com/jessesquires/JSQMessagesViewController/issues/1929 и это: http://chameleonproject.org/ – Fennec

ответ

1

Для изменения размера текста вы используете автоматическую компоновку. Если у вас есть NSScrollView, содержащий MYBubbleView s, содержащий NSTextView s, вы можете добавить NSLayoutConstraint s с помощью свойств содержимого изображения прокрутки и изображений пузырьков, а также добавить ограничения между всеми краями текстового вида и просмотра пузырьков. Затем привяжите вид пузырьков к верхнему/предыдущему виду.

Также убедитесь, что вы установили NSTextView для обертывания. Ширина внутреннего размера текстового вида будет установлена ​​так, чтобы она заполняла ширину, а внутренняя высота была установлена ​​так, чтобы она соответствовала всему тексту.

Я раньше думал, что это было о рисовании пузыри, так что я первый дал этот ответ:

Если вы посмотрите на Messages.app, вы увидите, что они не являются круглые пузырьки. Они в основном состоят из нескольких форм, наложенных друг на друга. Прямоугольник с закругленными углами, плюс бежевый путь кончика.

Таким образом, вы должны иметь возможность использовать NSTextView для текста, сделать его подчиненным для пользовательского представления, которое рисует округленный прямоугольник и кончик в методе drawRect, а затем использует ограничения автоматического макета, чтобы изменить размер вашего пузырька с текстовым видом и текстовым видом на ширину окна.

Возможно, у вас также есть пузырь, который видит CALayer с заполнением и закругленными углами, плюс один с изображением для наконечника (или aCAShapeLayer для наконечника), но drawRect - это более легкий подход.

+0

Пузыри сами по себе не большая проблема, реальной проблемой является изменение размера текста. Когда я изменяю размер окна, текст в пузырьках также должен изменяться – user3092701

 Смежные вопросы

  • Нет связанных вопросов^_^