beefon

Cocoing my life

Subscribe to RSS feed

-[NSImage stretchableImage...]

, , , ...

FYI: Динамика курса зеленой бумажки по отношению к другим валютам

, , , ...

Обновленный раздел Payments and Financial Reports в iTunes Connect ("обновленный", к слову, более чем год назад уже smile ) позволяет просматривать отчеты о выплатах, где указан курс конвертации валют в USD. Решил выложить график динамики этих курсов. Как видно, за этот год курс доллара США постепенно падает по отношению к другим валютам, но не рушится.




Я выбрал 4 основные для меня валюты - австралийский и канадский доллары, евро и британские фунты, как те, которые приносят мне основной доход. JPY - копейки, и не у одного меня, поэтому тут курс USD-JPY не отражен.

Свой NSScroller

, , , ...

Задача: на OS X 10.6 сделать скорллер, который был бы похож на скроллер из OS X 10.7, то есть не занимал свое место, а плавал поверх контента, был полупрозрачным, подсвечивался при наведении. Что-то подобное реализовано в оф. клиенте Twitter:

Read more...

SwapStorage - key-value класс, хранящий value не в памяти

, , , ...

Понадобилось сделать так, чтобы объекты достаточно большого размера (байт) хранились в памяти, но если бы поступил memory warning, то можно было бы безопасно и без потерь сдампить их на диск. А если бы они снова понадобились, то загрузить их обратно в память.

Read more...

BFStepper - почти UIStepper

, , ,

BFStepper - это контрол из двух кнопок "+" и "–", которые позволяют увеличивать/уменьшать какое-то значение. Само значение он не хранит, он просто говорит, что значение было увеличено/уменьшено пользователем, а на сколько увеличивать это значение - уже ваше дело. Чтобы ловить моменты нажатия на кнопки, нужно добавить target для событий UIControl-а UIControlEventValueChanged.
Если value у stepper-а равно BFStepperChangeKindNegative, то это говорит о том, что был нажат минус. Для плюса value будет иметь значение BFStepperChangeKindPositive.
Поддерживается long-tap для циклического увеличения значения.



Продолжая забивать свой аккаунт github подобным, даю ссылку: https://github.com/beefon/iOS-Stepper

RichTextView — используем OmniFrameworks

, , , ...

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

Read more...

UITableView: The Missing Animations

, , , ...

UITableView является одним из основополагающих виджетов для отображения информации в приложениях iOS. На нем основывается множество интерфейсов, потому что он предлагает с одной стороны понятный и прозрачный для разработчика механизм работы, а с другой стороны - понятный пользователю UI. И хотя временами работать с UITableView бывает неудобно, от него все равно никуда не деться.
Другой вопрос: как можно его улучшить? В этом посте я покажу, как можно добавить временами недостающие анимации, такие, как появившаяся в iOS 5 moveRowAtIndexPath:toIndexPath: и некоторые другие полезные анимации.

Read more...

Git и commit в no branch

, , ,

Часто бывает так, что переключиться в соответствующую ветку вы забыли и начали вносить изменения в "никакую ветку". Это обычно происходит, если у вас есть сабмодули. Так часто случалось со мной. Я нашел два выхода: как перенести изменения и как перенести комиты.

Read more...

iOS - небольшое PopupMenu

, , , ...

Представляю вашему вниманию свой третий open-source "проект". Это меню, похожее на то, которое используется в системе для переключения языка клавиатуры при long-тапе по кнопке глобуса:

longTapPopupMenu можно привязывать к любому UI-элементу и показывать в любой момент времени - хоть по нажатию, хоть по long-тапу (при этом реализация long-тап лежит на вашей совести). Главное, чтобы меню уместилось на экране по вертикали (оно за этим не следит.. пока, по крайней мере). По горизонтали меню может само расположиться над элементом и сместить сноску в нужное положение.


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

Использование:
Получаем меню с указанной шириной:
BFLongTapPopupMenu *menu = [BFLongTapPopupMenu longTapPopupMenuWithWidth:180];

Устанавливаем элементы меню:
[menu setItems:[NSArray arrayWithObjects:@"Русская", @"English (US)", @"Other", nil]];

Устанавливаем, какой элемент должен быть выбран (подсвечен) при показе меню:
[menu setSelectedIndex:2];

Показываем меню над каким-то элементом:
[menu showFromView:someUIView];


Протокол делегирования:
- (void)longTapPopupMenu:(BFLongTapPopupMenu *)menu willDismissWithIndex:(NSUInteger)index;
- (void)longTapPopupMenuDidDismiss:(BFLongTapPopupMenu *)menu;


Где брать:
https://github.com/beefon/longTapPopupMenu

MIT Licensed.

Wiki Server - расширяем "My Page"

, , , ...

В прошлых статьях я рассказал, как можно расширять функционал Wiki Server, добавляя на страницы Wiki код JavaScript путем его вставки в темы. Теперь я расскажу, что и как делать, чтобы внедрить свои функции и методы в страницу по адресу /updates/. В результате я сделал небольшой индикатор, отображающий число новых календарных приглашений, которые прислали пользователю другие пользователи через iCal Server.

Заодно вы узнаете, как работать с предоставляемыми Apple-ом CalDAV-ориентированными классами.

Read more...

February 2012
M T W T F S S
January 2012March 2012
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29