2016-06-16 63 views

risposta

8
class ViewController: UIViewController, UITextViewDelegate { 

    @IBOutlet weak var textView: UITextView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     addCustomMenu() 
    } 

    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) { 
     print(selectedText) 
     } 
    } 
} 

Questo è un esempio di voce di menu di selezione del testo che cambia il testo in un UITextView al rosso. changeToRedFunc può eseguire qualsiasi azione desiderata.

Nota: Questo è in Swift 3 (chiedere se si vuole che a Swift 2.3)

Spero che questo aiuti! Se avete domande non esitate a chiedere! : D

+0

Grazie, questo è stato molto utile. C'è un modo per: 1. fare in modo che la mia azione personalizzata appaia solo quando il testo è selezionato 2. vai all'inizio dell'elenco di azioni (ovvero prima dell'azione "taglia") 3. ottieni il testo che è stato selezionato – TomLisankie

+0

Dopo alcune ricerche, non sono sicuro che 1 e 2 siano possibili. 2 potrebbe essere possibile, ma richiederebbe la creazione del proprio menu di selezione del testo da quello che è probabilmente APIS Apple privato (non consentito). Come per 3, ho modificato il mio esempio per stampare il testo selezionato sulla console. @Shaken_Earth – Ike10