Визуализация текстового поля - PullRequest
2 голосов
/ 23 апреля 2011

Я пытаюсь создать действительно простой NSTextField с помощью Interface Builder (XCode 4), но рендеринг действительно странный со значениями по умолчанию:
Current rendering

Единственная настройка, которую я изменил, это стиль рамки:
enter image description here

Мой вопрос:

Как отобразить аккуратное текстовое поле «в квадрате, но с закругленными углами», как в Safari:
Safari Text Field

Как убрать то «переполнение: скрытое» (извините за описание CSS), которое срезает фокус? <Исправлена ​​ошибка Interface Builder. </p>

Должен ли я создать свой собственный компонент на основе изображений?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 10 мая 2011

Я думаю, что нашел точно то, что вы ищете. Вот как это выглядит: enter image description here

Это называется SSTextField . Скачать подкласс здесь: http://cocoatricks.com/2010/06/a-better-looking-text-field/

3 голосов
/ 23 апреля 2011

Вверху у вас есть NSSearchField, который предназначен для фильтрации / поиска.

Вероятно, причина того, что кольцо фокусировки обрезается, заключается в том, что оно находится внутрикоробка или перекрытие другого объекта.Не делайте этого.

Нет стандартных текстовых полей с закругленными углами (в отличие от закругленных концов);если вы хотите, вам нужно будет создать подкласс NSTextField самостоятельно или просто подождать Lion, где стандартное текстовое поле будет иметь закругленные углы.

2 голосов
/ 06 мая 2011

Текстовые поля с закругленными прямоугольниками довольно просты и не требуют подклассов элемента управления.Вместо этого вы можете просто переопределить способ отрисовки фона CALayer элемента управления.

Выберите прямоугольную форму поля, добавьте каркас QuartzCore в свой проект, а затем #import <QuartzCore/QuartzCore.h>.В методе viewDidLoad вашего контроллера вы измените свойство cornerRadius слоя текстового поля, например:

myTextField.layer.cornerRadius = 6.0;

Poof, текстовое поле с закругленными прямоугольниками!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...