È necessario aggiungere un'azione personalizzata al menu di modifica che viene visualizzato quando un utente seleziona del testo in un UITextView in iOS. Come faccio a fare questo? (Il codice Swift è preferito).Come si aggiunge un'azione personalizzata al menu di modifica della selezione del testo in iOS?
5
A
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
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
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