Shaken_Earth Shaken_Earth - 10 months ago 195
Swift Question

How do I add a custom action to the text selection edit menu in iOS?

I need to add a custom action to the edit menu that pops up when a user selects some text in a UITextView in iOS. How do I do this? (Swift code is preferred).

class ViewController: UIViewController, UITextViewDelegate {

   @IBOutlet weak var textView: UITextView!

   override func viewDidLoad() {


   func addCustomMenu() {
      let printToConsole = UIMenuItem(title: "Print To Console", action: #selector(printToConsole))
      UIMenuController.shared().menuItems = [printToConsole]

   func printToConsole() {
      if let range = textView.selectedTextRange, let selectedText = textView.text(in: range) {

This is an example of text selection menu item that changes the text in a UITextView to red. changeToRedFunc can perform any action you want.

Note: This is in Swift 3 (ask if you want it in Swift 2.3)

Hope this helps! If you have any questions feel free to ask! :D