You are correct. It is impossible to customize the menu that appears when you do a long press on a table view cell or collection view cell.
I discuss the problem in my book:
http://www.apeth.com/iOSBook/ch21.html#_table_view_menus
As I say there, Copy, Cut and Paste are the only choices you can have. You will have to make the menu emanate from something else if you want to customize it.
EDIT: In the iOS 7 version of my book, I demonstrate a way to do this. It's the same for table view cells and collection view cells, so I'll start with the table view cell solution. The trick is that you must implement the action method in a cell subclass. For example, if your custom action selector is abbrev:
, you must subclass the cell and implement abbrev:
:
That's the only tricky part. Then, back in your controller class, you do for abbrev:
exactly what you would do for any menu. In shouldShowMenuForRowAtIndexPath:
, add it to the custom menu. Then implement canPerformAction:
and performAction:
just as you would expect (scroll all the way to the bottom):
Here's the parallel implementation for collection view cells: the cell subclass:
And the controller (scroll all the way to the bottom):
Those approaches are also translated into Swift (not without some difficulty) in the iOS 8 edition of my book.