2017-12-10 3 views
0

In einer macOS App mit zwei NSTextView, ich versuche, wenn eine Textview Änderungen zu überprüfen, so weit ich habe dies getan:Wie überprüfe ich, wenn sich eine NSTextView ändert, wenn ich zwei Textansichten habe?

class ViewController: NSViewController, NSTextViewDelegate { 

    @IBOutlet var mainTextField: NSTextView! 
    @IBOutlet var findPanelFindTextView: NSTextView! 

    func textDidChange(_ notification: Notification) { 
      print("Hello!") // works only with mainTextField 
     } 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     mainTextField.delegate = self // for textDidChange 
     findPanelFindTextField.delegate = self // for textDidChange 
    } 

} 

Nur die erste NSTextView (mainTextField) löst die Methode textDidChange.

Ich sehe bereits diese Frage Check if NSTextView has been edited und diese Implementierung funktioniert für meine erste textView, aber nicht für meine zweite textView.

+1

Code ist in Ordnung, außer für „findPanelFindTextView“ ist nicht „findPanelFindTextField“, auch die IBOutlet –

Antwort

3

Neben der Tatsache, dass Sie findPanelFindTextField aber es schrieb findPanelFindTextView sein sollte, sollten Sie das Objekt überprüfen, der die Benachrichtigung geschrieben, ein Textview-Objekt aus es schaffen, aber es Any-NSTextView gegossen und dann einen Schalter erstellen zu prüfen, welche Textview ist die Benachrichtigung erfolgt:

@IBOutlet var mainTextView: NSTextView! 
@IBOutlet var findPanelFindTextView: NSTextView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    mainTextView.delegate = self 
    findPanelFindTextView.delegate = self 
} 

func textDidChange(_ notification: Notification) { 
    guard let textView = notification.object as? NSTextView else { return } 
    switch textView { 
    case mainTextView: 
     print("mainTextView changed") 
    case findPanelFindTextView: 
     print("findPanelFindTextView changed") 
    default: 
     break 
    } 
} 
+1

Danke Leo tragen können überprüfen, haben Sie eine große Hilfe für mich – Cue

Verwandte Themen