24 мая 2014 г.

16 мая 2014 г.

NSCollectionView без байндингов - пример / NSCollectionView without bindings

NSCollectionView — это класс, позволяющий показывать на экране коллекцию айтемов. Структура коллекции — абсолютно произвольная, но обычно NSCollectionView используется для всяких сетко-подобных контролов с ячейками, хедерами и футерами. Понимая, насколько абстрактен данный класс, разработчики Apple создали мощный механизм для создания любых лейаутов. По большому счету, даже NSTableView это конкретная реализация NSCollectionView  Возможности данного класса, в каком-то смысле, фантастические. На просторах сети очень много примеров...

6 мая 2014 г.

3 мая 2014 г.

NSMutableString - пример

Класс NSString используется для хранения строк, но в нем присутствует небольшой недостаток. Мы не можем изменять строку которая хранится в экземпляре этого класса. С этой проблемой очень хорошо справляется класс NSMutableString. У него намного больше возможностей обработки строк в отличии от NSString. Рассмотрим небольшой пример: Создадим экземпляр класса NSMutableString. NSMutableString *stringOne = [NSMutableString initWithCapacity: 15]; NSMutableString...

29 апр. 2014 г.

Категории - теория и пример

Язык Objective-C обладает возможностью добавлять новые методы к уже существующим классам (т.е. расширение функциональности класса). При этом не требуется исходников класса и добавленные методы автоматически становятся доступными всем классам, унаследованным от изменяемого. Так можно добавить новый метод классу NSString (возьмем за пример) и этот метод автоматически добавится во все остальные классы. Механизм, позволяющий расширять уже существующие...

27 апр. 2014 г.

View-based NSTableView на основе ячеек из NSView (Злосчастная кнопка). Продолжение

В предыдущей статье о View-based NSTableView на основе ячеек из NSView не было реализации по использованию кнопки на виде (замечание в комментарии читателя). Порывшись в поиске (вместе с несуразными лексическими словосочетаниями), хоть какого-то решения так и не было найдено. Было решено использовать делегат и дать право AppDelegate кликать на эту злосчастную кнопку.  Все бы ничего, но как узнать индекс этой чертовой вьюхи, на которой...

20 апр. 2014 г.

Кастомизация строки / Атрибуты строки

Кастомизация строки состоит в том чтобы изменить в строке в определенном слове или символе цвет, шрифт, высоту и т.д. За все это отвечают классы NSAttributedString и NSMutableAttributedString. Например поменяем шрифт для первых пяти символов: NSMutableAttributedString *seatText = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"Seats\n%d", seats]]; [seatText addAttribute:NSFontAttributeName                  value:[UIFont boldSystemFontOfSize:25.0F]     ...

14 апр. 2014 г.

View-based NSTableView на основе ячеек из NSView

Суть построения View-based таблицы заключается в том, чтобы вместо обычных строк, состоящих из NSImageView и NSTextField (как показано в предыдущем примере), создать кастомную (свою модель компонентов в строке) строку. И здесь как всегда на помощь приходит NSView, а точнее NSViewController - класс. Создаем новый проект. Назовем его ViewBasedNSTableViewWithNSView (Вы можете его назвать по своему, суть этого не меняется). Как и в предыдущем примере...

9 апр. 2014 г.

Класс NSNumber - примеры

Этот класс является одним из самых странных дополнений в языке Objective-C. Для обработки числовых типов достаточно внутренних функций и методов. Единственная, как бы, цель класса NSNumber это обработка объектов NSArray, который хранит в себе только объекты. Инициализация объекта NSNumber Суть такова, что основные методы инициализации начинаются одинаково, но отличаются лишь конечным типом числа, т.е. что имеется в виду: numberWith<Unsigned><Type> Исходя из этого полное имя метода, для определенного типа числа, выглядит так: numberWithBool numberWithChar numberWithDouble numberWithFloat numberWithInt numberWithInteger numberWithLong numberWithLongLong numberWithShort numberWithUnsignedChar numberWithUnsignedInt numberWithUnsignedInteger numberWithUnsignedLong numberWithUnsignedLongLong numberWithUnsignedShort Например: NSNumber...