воскресенье, 21 августа 2011 г.

iPhone SDK: всплывающий view

Допустим мы хотим, чтобы при загрузке приложения вдруг выскакивал некоторый view или при каких либо других обстоятельствах... например, после нажатия кнопки оформления заказа вы хотите уточнить адрес доставки.
В этом нам поможет presentModalViewController
Подразумеваю, что SampleViewController.xib и SampleViewController.h/.m созданы

Итак...

SampleViewController *top = [[SampleViewController alloc] init];	
[rootViewController presentModalViewController:top animated:YES];
[top release];

Вот и все :)
Хотя нет! Надо же его как-то убрать ;)

// SampleViewController.m
 
#import "SampleViewController.h"
 
@implementation SampleViewController
 
- (void)dismiss:(id)sender
{
	[self dismissModalViewControllerAnimated:YES];
}

Вот теперь все! =)

f(f(n)) == -n

Задача: всего-то написать такую функцию ( f(f(n)) == -n )
Есть мысли?

Подсветка синтаксиса он-лайн

вот список различных сервисов
http://habrahabr.ru/blogs/webdev/58391/

Я пользуюсь http://highlight.hohli.com/
Просто, быстро, красиво

UITextField: делаем, что надо и прячем клавиатуру


Контроллер, в котором вы хотите обрабатывать события UITextField должен поддерживать протокол <UITextFieldDelegate>
Например, у меня есть View, в котором есть UITableView и UITextField. И я в одном контроллере хочу обрабатывать поведение и того и другого. Тогда этот контроллер должен поддерживать соответствующие протоколы.

// AccountOptionsController.h
@interface AccountOptionsController : UIViewController <UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate>

Чтобы спрятать клавиатуру после окончания ввода данных и нажатия кнопки Return, нужно переопределить метод textFieldShouldReturn. Напиример так:

// AccountOptionsController.m
 
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

Чтобы обработать введенные данные, нужно переопределить метод textFieldDidEndEditing.

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    if (textField == loginField)
    {
        userData.login = textField.text;
    }
    ...
}

Думаю, общая идея ясна, а для дополнительных сведений смотри UITextFieldDelegate Protocol Reference.
С UITableView то же самое. Смотри UITableViewDelegate Protocol Reference и UITableViewDataSource Protocol Reference.

пятница, 19 августа 2011 г.

Как нарисовать 7 красных перпендикулярных линий, из которых две зеленые и еще две прозрачные


Петров пришел во вторник на совещание. Ему там вынули мозг, разложили по блюдечкам и стали есть, причмокивая и вообще выражая всяческое одобрение. Начальник Петрова, Недозайцев, предусмотрительно раздал присутствующим десертные ложечки. И началось.
— Коллеги, — говорит Морковьева, — перед нашей организацией встала масштабная задача. Нам поступил на реализацию проект, в рамках которого нам требуется изобразить несколько красных линий. Вы готовы взвалить на себя эту задачу?
— Конечно, — говорит Недозайцев. Он директор, и всегда готов взвалить на себя проблему, которую придется нести кому-то из коллектива. Впрочем, он тут же уточняет: — Мы же это можем?
Начальник отдела рисования Сидоряхин торопливо кивает:
— Да, разумеется. Вот у нас как раз сидит Петров, он наш лучший специалист в области рисования красных линий. Мы его специально пригласили на совещание, чтобы он высказал свое компетентное мнение.
— Очень приятно, — говорит Морковьева. — Ну, меня вы все знаете. А это — Леночка, она специалист по дизайну в нашей организации.

Леночка покрывается краской и смущенно улыбается. Она недавно закончила экономический, и к дизайну имеет такое же отношение, как утконос к проектированию дирижаблей.

— Так вот, — говорит Морковьева. — Нам нужно нарисовать семь красных линий. Все они должны быть строго перпендикулярны, и кроме того, некоторые нужно нарисовать зеленым цветом, а еще некоторые — прозрачным. Как вы считаете, это реально?
— Нет, — говорит Петров.
— Давайте не будем торопиться с ответом, Петров, — говорит Сидоряхин. — Задача поставлена, и ее нужно решить. Вы же профессионал, Петров. Не давайте нам повода считать, что вы не профессионал.

Генератор паролей на Python

Все довольно банально! Нужно было в очередной раз сгенерить пароль... Придумывать надоело, да и голова уже не варит, поэтому решил быстренько сделать генератор... bash -> python -> profit


Пользуйтесь на здоровье
import random
import string
import sys
 
def generate_passwd_with_len(pass_len):
    mas = string.printable[:-7]
    pas = ''
    for i in range(pass_len):
        pas += random.choice(mas)
    return pas
 
if __name__ == '__main__':
    if (len(sys.argv) == 1):
        print generate_passwd_with_len(11)
    else:
        pas_len = sys.argv[1]
        if ( pas_len.isdigit() ):
            print generate_passwd_with_len( int(pas_len) )
        else:
            print "Error! Enter passwd lenght!"