11 мар. 2014 г.

Objective-C подтверждение адресса электронной почты

Кусок кода, который приведен ниже используется многими программистами для подтверждения адресса электронной почты. Этот метод использует класс NSRegularExpression. Описание по этому классу можно посмотреть в документации Apple. - (BOOL) validEmail:(NSString*) emailString {     if([emailString length]==0) {         return NO;     }     NSString *regExPattern = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";     NSRegularExpression *regEx = [[NSRegularExpression alloc] initWithPattern:regExPattern...

Конвертация NSString-даты в удобно читаемую дату

Идея состоит в том чтобы полученную дату (например: 11/03/2014) перевести в более удобно читаемый, более человечный формат (например: вторник 11 марта 2014г.). Значит будем работать с NSDateFormatter. -(NSString *) getHumanDate: (NSString *) strDate { NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"dd/MM/yyyy"]; NSDate *date = [dateFormat dateFromString:strDate]; [dateFormat release]; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"EEEE','...

Аватарка с закругленными углами в iOS приложении

Закругленные аватары, кажется, очень модно. Даже Apple делает закругленные изображения для контактов. Если вам интересно, как этого добиться в вашем приложении вот ответ. Все, что нужно сделать, это настроить CALayer отвечающий за вид изображения, представляющего аватар: self.avatarImageView.layer.cornerRadius = 150.0f; self.avatarImageView.layer.borderWidth = 2.0f; self.avatarImageView.layer.borderColor = [UIColor blackColor].CGColor; self.avatarImageView.clipsToBounds = YES; Предположим, что у нас есть квадратное изображение размером 300...

10 мар. 2014 г.

NSSlider "ползунок"

Объект NSSlider отображает диапазон значений для чего-то (какого-нибудь контрола) в приложении. Ползунки могут быть вертикальными или горизонтальными полосами или круговыми циферблатами. Создадим форму и расположим на ней некоторые контролы интерфейса: Добавим: - Label; - Slider. В Label установим текст со значением 50 (можно любое другое или вообще никакого текста на изменять, далее будет понятно почему). Добавим слайдер, выровняем, и сделаем...

NSPopupButton выпадающий список

Класс NSPopUpButton определяет объекты, которые реализуют всплывающее окно и ниспадающие меню, в графическом интерфейсе пользователя. Создадим форму, на которой расположим наши контролы интерфейса: - PopUpButton; - TextField; - Button; - Label. Сделаем связи наших контролов с нашими аутлетами и экшенами: IBOutlet NSTextField *textLabel; // к Label IBOutlet NSTextField *textField; // к TextField IBOutlet NSPopUpButton *popUpButton; //...

9 мар. 2014 г.

StatusBar приложение

Простой пример приложения которое имеет свое меню в статус баре OS X. Создадим новый проект в Xcode. Перейдем в Interface Builder и добавим до нашего созданного окна "меню" (Выберем в списке контролов интерфейса Menu и положим где-то рядом с окном. Отредактируем элементы списка меню: - Показать окно; - Выход. В AppDelegate.h добавим следующие строки: IBOutlet NSMenu *statusBarMenu; NSStatusItem *statusBarItem; - (IBAction)showWindow:(id)sender; -...

8 мар. 2014 г.

Установить бэйдж на иконку приложения с помощью Objective-C

Для быстрой установки бэйджа на иконку своего приложения можно с помощью метода NSDockTitle. [[NSApp dockTile] setBadgeLabel:@"МойБэйдж"]; Это покажет красный бэйдж на иконке Вашего приложения. Но нужно помнить одну вещь. Сообщение будет показано полностью если текст сообщения не будет длиннее чем ширина иконки приложения. Здесь видно что текст отображается полностью и нигде не обрезан. А вот тут уже другая история. Середина текста...

Не убиваемое приложение на OS X

Небольшая, невинная шалость, которую Вы можете сделать своему другу на его Маке. Инструменты которые нам понадобятся: - Текстовый редактор; - Терминал. Предполагаю что у Вас уже есть некоторые знания по запуску приложений из терминала (launchd) и использованию launchctl инструмента. Все что нужно для не убиваемого приложения (будь то какое-нибудь фоновое приложение) это определить его в качестве сервиса / процесса ( службы) и запустить (получится что если вы его убьете (kill), то система автоматически его снова запустит). launchd используется...