我试图在mapview元素滚动时实现一些行为...通过编写mapview内的scrollview的委托。
所以,现在,我得到了一个指向代码中地图视图使用的滚动视图的指针。
但是,我希望在地图视图中设置此滚动视图的委托,但问题是mapview已经在地图视图中为此滚动视图设置了默认委托。
我可以让我的委托实现协议的所有消息,明确地将它们发送到mapview的默认委托,同时还实现我自己的行为吗?
我怎样才能将自己的委托行为添加到已经存在的默认委托....?
谢谢大家, 迈克尔
答案 0 :(得分:1)
您可以获取现有代理并为自己保存参考:
origDelegate = [theView delegate];
然后将您想要的对象设置为委托:
[theView setDelegate:self];
然后在获取委托消息时,在origDelegate
上调用相同的方法,如果需要(或必要时)修改响应,然后返回修改后的响应:
- (BOOL)shouldViewDoSomething:(id)theView
{
BOOL result = [origDelegate shouldViewDoSomething:theView];
if (decision1)
{
result = !result;
}
return result;
}