Potrzebuję dodać niestandardową akcję do menu edycji, które pojawia się, gdy użytkownik wybiera tekst w UITextView w iOS. Jak mam to zrobic? (Preferowany jest kod Swift).Jak dodać niestandardową akcję do menu edycji zaznaczania tekstu w systemie iOS?
5
A
Odpowiedz
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)
}
}
}
Jest przykładem menu wyboru tekstu, który zmienia tekst w UITextView
na czerwono. changeToRedFunc
może wykonać dowolną akcję.
Uwaga: To jest w Swift 3 (zapyta, czy chcesz go Swift 2.3)
Nadzieja to pomaga! Jeśli masz jakieś pytania, proszę zapytać! : D
Dzięki, to było bardzo pomocne. Czy istnieje sposób, aby: 1. mieć moją akcję niestandardową pojawiać się tylko wtedy, gdy zaznaczony jest tekst 2. przejść do przodu listy działań (również przed działaniem "cut") 3. uzyskać tekst, który został wybrany – TomLisankie
Po pewnych badaniach nie jestem pewien, czy możliwe są 1 i 2. 2 może być możliwe, ale wymagałoby to stworzenia własnego menu wyboru tekstu z najprawdopodobniej prywatnego jabłka APIS (niedozwolone). Jeśli chodzi o 3, edytowałem mój przykład, aby wydrukować wybrany tekst na konsolę. @Shaken_Earth – Ike10