I have a full canvas CCLayer with several tiny CCLayers on it - they are buttons. On the buttons I enabled the touch listener:

```
- (id)init {
  if ((self = [super init])) {
    [self setTouchEnabled:YES];
  }
  return self;
}

```

First I tried the default touch handlers:

```
- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  NSLog(@"This is me: %d", self->button_id);
}

```

The strange result is wherever I touch it always triggers all button touch handlers, even if I touch on a clean area, where nothing should be called.

I was reading the documentation and blogs about but nothing seemed like a straight solution. I also tried the single touch handler by adding:

```
- (void)onEnterTransitionDidFinish {
  [CCDirector sharedDirector].touchDispatcher addTargetedDelegate:self priority:1 swallowsTouches:YES];
}

- (void)onExit {
  [[CCDirector sharedDirector].touchDispatcher removeDelegate:self];
}

- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
  NSLog(@"This is me: %d", self->button_id);
}

```

This case the only difference was that I got only 1 listener triggered - always the one I defined the last - and again, no matter where the touch occurred.

It seems to me that the problem is not the event delegation, but the CCLayer boundaries. This is how I set the size:

```
self.contentSize = CGSizeMake(10.0f, 10.0f);

```

Do you have ideas where I went wrong? Maybe I missed something essential.

Thank you!