2016-06-16 18 views

Trả lời

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

Đây là ví dụ về mục menu lựa chọn văn bản thay đổi văn bản trong một UITextView thành màu đỏ. changeToRedFunc có thể thực hiện bất kỳ hành động nào bạn muốn.

Lưu ý: Đây là trong Swift 3 (yêu cầu nếu bạn muốn nó trong Swift 2.3)

Hope this helps! Nếu bạn có bất kỳ câu hỏi cảm thấy tự do để yêu cầu! : D

+0

Cảm ơn, điều này rất hữu ích. Có cách nào để: 1. có hành động tùy chỉnh của tôi chỉ xuất hiện khi văn bản được chọn 2. chuyển lên trước danh sách các hành động (còn gọi là hành động "cắt") 3. nhận văn bản được chọn – TomLisankie

+0

Sau một số nghiên cứu, tôi không chắc chắn rằng 1 và 2 là có thể. 2 có thể là có thể, nhưng nó sẽ yêu cầu tạo trình đơn lựa chọn văn bản của riêng bạn từ những gì có khả năng nhất tư nhân táo APIS (không được phép). Đối với 3, tôi đã chỉnh sửa ví dụ của tôi để in văn bản đã chọn vào bảng điều khiển. @Shaken_Earth – Ike10

Các vấn đề liên quan