>Neither the block nor the returned signal may be nil.

Why not? There are some places we're using a command just to find out when a button is clicked. It'd be silly to provide a signal block.