Форум программистов, компьютерный форум CyberForum.ru

Вызов объекта в keyDown - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Drag and Drop http://www.cyberforum.ru/objective-c/thread864571.html
Здравствуйте, сейчас пишу приложение в котором требуется поддержка перетаскивания UIImage, но на одной вьюшке с ней есть другие элементы. При перемещении UIImage прохдит под остальными элементами. Как вытащить ее на передний план? - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { // We only support single touches, so anyObject retrieves just that touch from touches....
Objective-C AVQueuePlayer Доброго времени суток! Я хочу последовательно воспроизвести mp3 файлы, т.е когда заканчивается первый, начинается второй и т.п. Создао такой код, но он не работет AVPlayerItem *item1 = URLForResource:@"1" withExtension:@"mp3"]]; AVPlayerItem *item2 = URLForResource:@"2" withExtension:@"mp3"]]; AVPlayerItem *item3 = URLForResource:@"3" withExtension:@"mp3"]]; AVQueuePlayer *player = ... http://www.cyberforum.ru/objective-c/thread860902.html
UIDocumentInteractionController Objective-C
Добрый день! Я использую UIDocumentInteractionController для шаринга фото в приложение Instagram. Но у меня уже есть поповер для шаринга, можно ли сделать так, чтоб UIDocumentInteractionController не появлялся виде поповера, а сразу запускал приложение Instagram?
Objective-C Смена ориентации экрана
Привет всем, у меня есть несколько контроллеров, на одном из них нужно поддерживать смену ориентации экрана, проблема в том, что если я включаю в summary поддержку, то все контроллеры начинают менять ориентацию при повороте, а мне это не нужно, как устроить поддержку только в одном из них? shouldAutorotateToInterfaceOrientation как я понял ось выше 6й не поддерживает я пробовал делать так...
Objective-C (mac) трудность в создании класса http://www.cyberforum.ru/objective-c/thread858099.html
привет. Добавлено через 13 минут привет. делаю пробный класс, в классе метода "создания secondWindow" который содержит что угодна например кнопку. а в основном коде(appDelegate) метод вызываемый при нажатии кнопки, метод создает элимент класса(пробного), и вызывает метод элимента "создание secondWindow". вот моя попытка))) при нажатии на кнопку окно создаеться но сразу, после закрытия...
Objective-C Scroll view вопрос элементарный. Вот я создал scroll view, заполнил его. (информация не помещается на экране (уходит вниз экрана) и должна ездить вверх, вниз. Однако не ездит. Я наверно забыл задать какие-то параметры, но никак не могу понять какие. Логично я предположил, что это параметры в Scroll View Size. однако я там проставлял top-0, bottom-1581, все равно экран не ездит. что не так? Добавлено... подробнее

Показать сообщение отдельно
spens
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 7
17.05.2013, 12:05  [ТС]
Цитата Сообщение от Vorona Посмотреть сообщение
ну так теперь же вы создаете View с помощью метода init
т.е. чтобы сейчас в лог вывелось значение, нужно в методе init его присвоить

а вот если вы View просто привяжете к элементу в интерфейсбилдере и руками нигде не будете его инитить, то лучше делать инициализацию переменных членов класса в awakeFromNib, в этот момент все элементы ниб файла приконекчены и инициализированы, потому этот вариант более "безопасный", чем initWithCoder или initWithFrame, где некоторые IBOutlet переменные в ниб файле могут все еще равняться nil на данном этапе, а вы получите головную боль от неясности

подытожим:
в awakeFromNib вы делаете инициализацию, когда вьюшка создана в интерфейс билдере, а не с помощью initXXX методов
в initXXX методах вы делаете инициализацию, когда создаете вьюшку руками при помощи initXXX методов и руками кладете ее на основную вьюху или что там еще

Добавлено через 31 минуту
и вообще, я надеюсь вы понимаете, что View, которую вы создаете в интрефейс билдере и вью, которую вы создаете с помощью init метода в аппделегате, это две разные вью и между собой никак не связаны?
(вплане два разных инстанса одного и того же класса)
да, понимаю что это разные экземпляры создаются, просто не понимаю путь как решить что бы переменная была доступна и так и так причем одна ее версия

все работает когда initWithFrame и awakeFromNib вместе

View.m

Objective-C
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
30
31
@synthesize string;
 
- (void)awakeFromNib
{
    self.string = @"string";
}
 
- (id)initWithFrame:(NSRect)frameRect
{
    self = [super initWithFrame:frameRect];
    if (self)
    {      
        self.string = @"string";
    }
    return self;
}
 
- (void)say
{
    NSLog(@"%@", self.string);
    NSLog(@"%p", self.string);
}
 
- (void)keyDown:(NSEvent *)event
{
    if ([event keyCode] == 125)
    {
        NSLog(@"%@", self.string);
        NSLog(@"%p", self.string);
    }
}
AppDelegate.m

Objective-C
1
2
3
4
5
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    View *v = [[View alloc] initWithFrame:[[self window] frame]];
    [v say];
}
обращение идет к одному адресу и на первый взгляд все хорошо

но ведь это же костыль и криворукость?

Добавлено через 7 минут
или все таки это нормально?

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
- (void)awakeFromNib
{
    self.string = @"string";
}
 
- (id)init
{
    self = [super init];
    if (self)
    {      
        [self awakeFromNib];
    }
    return self;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru