Question: I have a child layer that I'm adding to the scene which contains a menu, it is initialized like so:

```
- (id) init
{
if((self=[super init]))
{
    CGSize winSize = [[CCDirector sharedDirector] winSize];

    CCMenuItemImage* attackButton = [CCMenuItemImage
                                    itemFromNormalImage:@"btnAttack.png" 
                                    selectedImage:@"btnAttack.png"
                                    target: self
                                    selector:@selector(attack)];

    CCMenu* menu = [CCMenu menuWithItems:attackButton,  nil];
    menu.position = ccp(winSize.width-80,winSize.height-140);
    [menu alignItemsHorizontally];
    [self addChild:menu];   

}
return self;
}

```

This crashes with a SIGABRT error unless I change the target: to 'nil'. Why is this not working and how can I fix it?

Answer: 
I would follow the native API of your tablet. Your tablet's vendor has very well described SDK including several [`examples`](http://www.wacomeng.com/windows/index.html) (in Visual C++).

What you are specifically looking for is [`the eraser detection`](http://www.wacomeng.com/windows/docs/Wintab_v140.htm#_Toc275759917)
Dealing with WinTab is easy enough if all you want is to detect device type. However it can get a lot more confusing if you want to process absolute positions, pen orientation and pressure. There's a good C++ lib for dealing with this:

<http://www.billbaxter.com/projects/bbtablet/index.html>

Even if you don't want to go through the effort of wrapping it to use it directly, you can learn from the source if you get stuck.