2016-06-16 14 views

Antwort

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) 
     } 
    } 
} 

Dies ist ein Beispiel für den Menüpunkt Textauswahl, die den Text in einem UITextView zu rot ändert. changeToRedFunc kann jede gewünschte Aktion ausführen.

Hinweis: Dies ist in Swift 3 (fragen Sie, wenn Sie es in Swift 2.3 wollen)

hoffe, das hilft! Wenn Sie irgendwelche Fragen haben, zögern Sie nicht zu fragen! : D

+0

Danke, das war sehr hilfreich. Gibt es eine Möglichkeit zu: 1. Lassen Sie meine benutzerdefinierte Aktion nur erscheinen, wenn der Text ausgewählt ist. 2. Bewegen Sie sich an den Anfang der Liste der Aktionen (aka vor der Aktion "cut") 3. Rufen Sie den Text, der ausgewählt wurde – TomLisankie

+0

Nach einigen Recherchen bin ich mir nicht sicher, ob 1 und 2 möglich sind. 2 möglich, aber es würde erfordern, dass Sie Ihr eigenes Textauswahlmenü von dem wahrscheinlich privaten Apple APIS erstellen (nicht erlaubt). Was 3 betrifft, habe ich mein Beispiel bearbeitet, um den ausgewählten Text auf die Konsole zu drucken. @ Shaken_Earth – Ike10