EPModel 0.0.4

EPModel 0.0.4

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布最新发布2015年9月

Ruslan Samsonov 维护。



EPModel 0.0.4

  • Ruslan Samsonov

用于 iOS 应用的事件处理框架

该框架为 NSObjects 提供了责任链,同时也可以用于处理 UIViewControllers 内的 UI 事件(例如 UI 的变化、导航请求等)。

使用方法

类别 NSObject+EPController.h 实现了协议 EPController 并包含事件代理的行为

@protocol EPController <NSObject>
- (id <EPController>)nextEPResponder;
- (void)setNextEPResponder:(id<EPController>)nextEPResponder;
- (void)processEPEvent:(EPEvent *)event;
@end

自定义事件必须继承自 EPEvent,例如 @interface EPSampleEvent : EPEvent。要在控制器中处理自定义事件,需要添加事件支持

@implementation EPSampleViewController
+ (void)initialize
{
    if (self == EPSampleViewController.class) {
        [self registerForEPEventClass:EPSampleEvent.class selector:@selector(handleEPSampleEvent:)];
    }
}

- (void)handleEPSampleEvent:(EPSampleEvent *)event
{
    event.result = @"Good result";
}
@end

方法 processEPEvent: 将事件传递到以该对象开始的链,并在新xEPResponder 链中遍历。EPViewController 具有类似于 UIResponder 链的嵌套支持(UIEvent 不提供定制的功能),排除内部 UIView。视图控制器应继承自 EPViewController(或单独实现 EPController 逻辑),例如 @interface EPSampleViewController : EPViewController。对于子控制器,它会自动将它们添加到事件链中。从控制器发出的事件将通过链传递给可以处理该事件的控制器。