2016-03-31 6 views
0

ユーザがNSTextViewを変更するたびに機能を起動します。私はこれをiOSアプリケーションで動作させて、OS Xアプリで動作させようとしています。私は私のNSTextViewのための出口を作成し、以下のスウィフトコードを書いた:私はすべてのエラーを得ることはありませんが、私の文が印刷されませんNSTextViewDelegateとtextViewDidChangeが動作していないNSTextViewの変更を聞きます。

import Cocoa 

class ViewController: NSViewController, NSTextViewDelegate { 

    @IBOutlet var textViewOutlet: NSTextView! 

    func textViewDidChange(textView: NSTextView) { 
     print("Text view changed!") 
    } 
} 

を。

+0

'textViewDidChange'は、' NSTextViewDelegate'または 'NSTextDelegate'のメソッドではありません。 'textDidChange'を試してください。 – Willeke

+0

@Willeke私はtextDidChangeを試してみると、 "Objective-C method 'textDidChange:'メソッドによって提供される 'textDidChange'プロトコル 'NSTextDelegate'のオプションの要件メソッド 'textDidChange'との競合" – user1822824

+0

パラメータを変更しましたか? – Willeke

答えて

3

これはtextDidChange(notification :)である必要があります。次のように試してみてください:

func textDidChange(notification: NSNotification) { 
    guard let textView = notification.object as? NSTextView else { return } 
    print(textView.string) 
} 
1

これは、代理人の割り当てがない理由です。

TextViewOutlet.delegate = self; 

この方法は実際には次のようになります。パラメータに注意してください。

func textDidChange(_ notification: Notification) { 

} 
関連する問題