pub trait NSButton: Sized {
// Required methods
unsafe fn setImage_(self, img: id);
unsafe fn setBezelStyle_(self, style: NSBezelStyle);
unsafe fn setTitle_(self, title: id);
unsafe fn initWithFrame_(self, frameRect: NSRect) -> id;
unsafe fn setTarget_(self, target: id);
unsafe fn setAction_(self, selector: Sel);
// Provided method
unsafe fn alloc(_: Self) -> id { ... }
}