NSTableView with custom header

Default header looks like this

First we want change height of header:

1
2
NSTableHeaderView *tableHeaderView = [[NSTableHeaderView alloc] initWithFrame:NSMakeRect(0, 0, 120, 60)];
    [_tableView setHeaderView:tableHeaderView];

Next step we want change NSTableHeaderCell, can make category for this class or make subclass. So, I wrote category.

Empty category

Continue reading

DDProgressView – Custom Progress View

DDProgressView is a custom progress view à la Twitter for iPhone.

DDProgressView works on both iOS and Mac OS. You must also compile the AppKitCompatibility.m file when targeting Mac OS.

Thanks, Damien DeVille!

Get Geo tags from image

Little application for getting geo location from photo

Continue reading

Adding SVN revision to Xcode project

Просмотр ревизии в самом приложении предотвращает путаницу и всякие проблемы с отслеживанием текущей версии.

Чтоб отслеживать версию репозитория нам нужно добавить слдеющий код bash скрипта.

1
2
3
4
5
6
7
8
9
10
REVISION=`svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
APPVERSION=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${TARGET_BUILD_DIR}"/${INFOPLIST_PATH}`

xported="xported"

if [ $APPVERSION != $xported ]; then
     /usr/libexec/PlistBuddy -c "Delete :CFBundleDisplayVersion" "${TARGET_BUILD_DIR}"/${INFOPLIST_PATH}
     /usr/libexec/PlistBuddy -c "Add :CFBundleDisplayVersion string" "${TARGET_BUILD_DIR}"/${INFOPLIST_PATH}
     /usr/libexec/PlistBuddy -c "Set :CFBundleDisplayVersion $APPVERSION.$REVISION" "${TARGET_BUILD_DIR}"/${INFOPLIST_PATH}
fi

Чтоб добавить скрипт, необходимо выполнить следующие действия:
1. Зажать Ctrl+клик на фаил проекта в дереве проекта
2. Add->New Build Phase -> New Run Script Build Phase
3. Откроется окно в которое нужно вставить скрипт.

Continue reading

Keychain

Это только часть статьи, скопировал с habrahabr.ru. Добавил для себя, но может кому-то пригодится тоже. Спасибо автору youROCK.

Функции для работы с Keychain достаточно низкоуровневые (в отличие от большинства фреймворков, которые работают с пользовательским интерфейсом), и используют API на языке C. В документации от Apple есть очень объемное руководство по всем вызовам, которые поддерживаются подсистемой Keychain Services, но я бы хотел показать, насколько просто можно делать базовые вещи.

При работе с вызовами на языке C, Apple в основном использует CoreFoundation. CoreFoundation использует и поддерживает практически те же самые типы данных, которые используются в Objective C с фреймворком Cocoa, и даже поддерживает прозрачное приведение типов CoreFoundation < -> Cocoa. Все вызовы CoreFoundation имеют префикс CF (ср. с NS), а имена типов получаются с помощью замены NS на CF и звездочки [*] на суффикс Ref (reference, ссылка) в конец (к примеру, NSString* < -> CFStringRef, NSArray* < -> CFArrayRef). Для работы с памятью используются CFRelease(CFTypeRef) / CFRetain(CFTypeRef), о назначении и способе использования которых можете догадаться сами.
Continue reading

iPad TV ad

Новая реклама iPad. В рекламе есть приложение созданное нашей командой :)

Small feature with UIlabel

Add framework QuartzCore

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#import

UILabel *label = [[UILabel alloc] init];
     [label setTextColor:[UIColor whiteColor]];
     [label setBackgroundColor:[UIColor darkGrayColor]];
     
     [[label layer] setBorderWidth:2];
     [[label layer] setCornerRadius:15];
     [[label layer] setBorderColor:[UIColor whiteColor].CGColor];
     
     [label setAlpha:0.8];
     [label setTextAlignment:UITextAlignmentCenter];
     [label setFrame:CGRectMake(0, 0, 220, 50)];
     [label setText:@"Loading..."];
     [label setCenter:window.center];
     [window addSubview:label];

Result:

Integrate Apple Game Center to BeerTender iPhone Game

Hello

English version comming soon…

Предварительно:
В игре BeerTender интегрированны дополнительно онлайн скоры от mob1serv, что позволяет отображать результат игры и на других версия iOS и даже на других платформах что бывает не мало важно!

Прочитав документацию от apple принялся за дело. Большинство блоков кода взято из примеров приведенных в документации.

Перед началом работы непосредственно с кодом в среде xCode, необходимо войти в itunesconnect и проделать следующие действия:
– включить в приложении Game Cente;
– добавить и настроить Leaderboard;
– добавить локализацию;
– по желанию добавить Achievements.

Для начала необходимо добавить фреймворк GameKit и проверить наличие Game Center на девайсе и версию iOS.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#import < GameKit/GameKit.h>

BOOL isGameCenterAvailable()
{
    // Check for presence of GKLocalPlayer API.
    Class gcClass = (NSClassFromString(@"GKLocalPlayer"));
     
    // The device must be running running iOS 4.1 or later.
    NSString *reqSysVer = @"4.1";
    NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
    BOOL osVersionSupported = ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending);
     
    return (gcClass && osVersionSupported);
}

Создаем метод в котором запускается прослушивание уведомлений/нотификаций аутерефикации пользователя и метод собственно запускающего аутерификацию.
Continue reading

1 2 3 4 Next »