ReactiveCocoa--RACDelegateProxy
来源:互联网 发布:格灵深瞳 知乎 编辑:程序博客网 时间:2024/06/05 07:12
基本信息
NSObject
RACDelegateProxy *rac_delegateProxy;
参考vincenttsai
这个类平常使用中可能用的不多,比如界面中多个UITextfield
,但是各个在代理方法中要做的事情不同,或者说有些需要实现有些不需要。
RACDelegateProxy *delegateProxy = [[RACDelegateProxy alloc]initWithProtocol:@protocol(UITextFieldDelegate)]; [[delegateProxy rac_signalForSelector:@selector(textFieldShouldReturn:)] subscribeNext:^(RACTuple *args) { UITextField *field = [args first]; [field resignFirstResponder]; }]; self.textfield.delegate = (id<UITextFieldDelegate>)delegateProxy; objc_setAssociatedObject(self.textfield, _cmd, delegateProxy, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
上面的代码片段就明确指定self.textfield
的- (BOOL)textFieldShouldReturn:(UITextField *)textField;
会被执行。还需要注意的是,这里delegateProxy
可能会无缘无故的被释放掉而crash,所以需要保留它,最后一句代码的作用就是这个。
虽然这个类在实际使用中作用不大,但是在RAC内部像UITextView (RACSignalSupport)
UIAlertView (RACSignalSupport)
都会用到
其实这里我们也可以通过这样方法实现
[[self.textfield rac_signalForControlEvents:UIControlEventEditingDidEndOnExit] subscribeNext:^(id x) { NSLog(@"%s", __func__); }];
0 0
- ReactiveCocoa--RACDelegateProxy
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- ReactiveCocoa
- [BestCoder Round #25 1003]Harry and Christmas tree
- React.js 概览
- 判断两个增序数组是否有重复(度娘)
- 修改win32平台下窗口大小,及屏幕适配
- 32位小写MD5加密js和sha256哈希js
- ReactiveCocoa--RACDelegateProxy
- 三维引擎设计专题--文字的渲染
- leetcode挨个儿刷150105(1):Merge Two Sorted Lists
- bzoj1022: [SHOI2008]小约翰的游戏John 博弈
- RESTful实践总结
- C++ primer 单词转换(使用map对象)
- Ruby on rails 入门胡来版 (一) 准备工作
- 素数表
- Understanding HBase and BigTable