Пользовательский класс / объект iPhone в цепочке респондента - PullRequest
2 голосов
/ 09 мая 2009

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

Я предпринял несколько попыток, основываясь на разных документах, сообщениях и т. Д., Которые я прочитал (вот почему я сейчас не публикую источник). Моя последняя попытка происходит от UIResponder и содержит член UIView, в котором хранится указатель на текущее представление.

Прежде чем я потратил слишком много времени на "выяснение этого", я хотел посмотреть, есть ли у кого-нибудь идеи.

Итак, мой вопрос: «Как добавить пользовательский класс, чтобы быть первым респондентом, особенно для получения сенсорных событий»?

Ответы [ 2 ]

2 голосов
/ 10 мая 2009

Используя предложение Роджера, используемое мной решение выглядит следующим образом:

Декларация (touchmyself.h)

#import <UIKit/UIViewController.h>
@interface UIViewController (TouchMyself)
    - (void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event;
    - (void) touchesMoved: (NSSet *) touches withEvent: (UIEvent *) event;
    - (void) touchesEnded: (NSSet*) touches withEvent: (UIEvent*) event;
    - (void) touchesCancelled: (NSSet*)touches withEvent: (UIEvent*) event;
@end 

Реализация (touchmyself.m)

#import "touchmyself.h"
@implementation UIViewController (TouchMyself)
- (void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event
{
    // Do Stuff
}

...
@end

Объявления потребителей (some_view_controller.h)

@interface ViewSwitchBox : UIViewController 
{
    // Declare Stuff
}

После прочтения нескольких документов по категориям глава 1.5 «Разработка приложений для iPhone SDK» рассмотрит его.

-isdi-

0 голосов
/ 10 мая 2009

Ваше решение звучит странно, потому что UIView сам по себе является UIResponder.

Если у вас есть общий код обработки событий, почему бы не объявить категорию в UIView или UIResponder, к которой вы затем сможете обращаться из всех ваших подклассов UIView (или UIResponder), включая UIApplication, UIWindow и UIControl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...