How to return a UIMenu for read-only UITextView

I have a UITextView being added at runtime to a UIImageView as the result of doing text recognition. It's set to be editable = NO and selectable = YES. When I set the text and select it, it asks the delegate for the menu to display via:

textView:editMenuForTextInRange:suggestedActions:

The suggested items contains many UIAction and UICommand objects that have private methods or do not have the destructive attribute set, yet they are destructive. Some of these are:

promptForReplace:
transliterateChinese:
_insertDrawing:
_showTextFormattingOptions:

I need to return a menu that has only non-destructive commands in it.

First, why isn't UITextView sending only non-destructive suggested commands when its editable is NO?

Second, how can I filter the array of suggested commands when it's impossible to know if they're destructive (as some are missing that attribute)?

In addition to that, even non-destructive commands are causing an unrecognized selector exception, such as the Speak command, which it is sending to my view controller instead of to the UITextView, which is the only thing that knows what the text is that it should speak.

How to return a UIMenu for read-only UITextView
 
 
Q