3

アプリケーションに があり、メソッドを使用して受信者のトークン化文字セットを指定するメソッドNSTokenFieldを実装しました。tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:setTokenizingCharacterSet:

  def tokenField(tokenField, completionsForSubstring:substring, indexOfToken:tokenIndex, indexOfSelectedItem:selectedIndex)
    tokenField.setTokenizingCharacterSet(NSCharacterSet.whitespaceAndNewlineCharacterSet)
  end

スペースバーまたは入力ボタンをクリックすると、期待どおりに機能します。マウスで補完リストの項目の 1 つをクリックしたときにも、同じ動作をしたいと思います。

そんなことがあるものか?

ご協力いただきありがとうございます。

4

2 に答える 2

3

NSTokenField でこの動作が可能かどうかはわかりません。

しかし、箱から出してすぐに必要なことを行うMTTokenFieldを確認する必要があります。

そのためには、次のことを行う必要があります。

1. Xcode プロジェクトを静的ライブラリとして作成します (ARC を有効にしないでください)。

2. プロジェクトを vendor/MTTokenField に保存します

3. サブディレクトリ「MTTokenField」にある MTTokenField のすべてのファイルを、新しい XCode プロジェクトにドラッグ アンド ドロップします。ファイルのコピーを選択します。

4.これを rakefile に追加して、ライブラリをコンパイルして Rubymotion プロジェクトにリンクします。

app.vendor_project("vendor/MTTokenField/", :xcode, :xcodeproj => "MTTokenField.xcodeproj", :target => "MTTokenField", :products => ["libMTTokenField.a"], :headers_dir => "MTTokenField")

5.Interface Builder で、NSTokenField のクラスを NSTextField に変更し、そのカスタム クラスを MTTokenField に設定します。また、セルのカスタム クラスを NSTextFieldCell ではなく MTTokenFieldCell に変更します。

6. 次に、MTTokenField のデリゲートを、応答する必要があるクラスに設定する必要があります。

def tokenField(tokenField, completionsForSubstring: substring )
   # your have to return an array containing your results matching substring.
end

以上です。それはうまくいくはずです。

それが役に立てば幸い !

于 2013-06-21T12:06:49.163 に答える