2016-03-15 11 views
11

スウィフトでレスポンダを変更したり、キーボードのタブを押して別のテキストビューを選択する方法はありますか?スウィフトのTabキーで次のNSTextViewを選択

enter image description here

注: それは空白のタイプのアプリケーションで塗りつぶしのためです。

私のVCは単語[Word]のリストを作成し、それらの単語のそれぞれは独自のWordView - word.wordViewを持っています。 WordViewが表示されます。 WordViewはNSTextViewの子です。

私はkeydownを無効にしようとしましたが、テキストビューに何も入力できません。

答えて

5

self.textView1.delegate = self 

そして、デリゲートメソッドを実装します。

textField1.nextKeyView = textField2 

enter image description hereまずデリゲートを設定します

+1

https://www.dropbox.com/s/59z6w8y1qp9pwa8/nextKeyView.zip?dl=0 –

+0

この作業を行うことはできませんが、素晴らしいアイデアのように。私のループは現在次のようになっています:previousWord.wordView.nextKeyView = word.wordView – Aaron

+0

しかし、Tabキーを押すと、現在のテキストビューにはタブスペースが作成され、 "nextKeyView"には変更されません。 – Aaron

5

textView1からtextView2に移動するとします。あなたはIBを介して、またはプログラムで次のテキストフィールドに、あなたのテキストフィールドnextKeyViewを接続する必要が

func textView(textView: NSTextView, doCommandBySelector commandSelector: Selector) -> Bool { 
    if commandSelector == "insertTab:" && textView == self.textView1 { 
     self.window.makeFirstResponder(self.textView2) 
     return true 
    } 
    return false 
} 
+0

この場合、「自己」とは何かを理解するのに役立ちますか? View Controller? – Aaron

+0

私のVCは単語[Word]のリストを作成し、それらの単語のそれぞれは独自のWordView - word.wordViewを持っています。 WordViewが表示されます。 WordViewはNSTextViewの子です。 – Aaron

+0

VCにfuncを入れると、ViewControllerにメンバ 'window'がありません。 – Aaron

関連する問題