5

私は OSX 開発の初心者なので、私の質問がここで解決されることを願っています。

NSTokenFieldアプリにがあり、tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:メソッドを実装しました。

すべて正常に動作しますが、現在の結果は次のようになります。

ここに画像の説明を入力

私が望むのは、次のようにすることです:(メールアプリの補完に似ています)

ここに画像の説明を入力

これは、補完リストが NSTokenField 幅をすべて取得することを意味します。Accessibility Inspectorを使用すると、最初のスクリーンショットに対応する階層が次のようになっていることがわかります。

AXScrollArea -> AXList -> AXTextField

2番目のスクリーンショットに対応するものは次のとおりです。

AXScrollArea -> AXTable -> AXRow:AXTableRow -> AXTextField

したがって、補完リストを表示するには an を使用する必要があると思いますがNSTableView、これを実現する方法がわかりません。それがどのように可能か知っている人はいますか?

よろしくお願いします。

編集

少なくとも 2 人が、メソッドを実装し、適切なプロパティtokenField:menuForRepresentedObject:でメニュー幅を定義することを提案しました。NSMenuしかし、このメソッドは特定のトークンのメニューを定義するために使用され、私はすでにそれを実装しています:

  def tokenField(tokenField, menuForRepresentedObject:representedObject)
    theMenu = NSMenu.alloc.initWithTitle("Email address context menu")
    item_0 = theMenu.insertItemWithTitle('add_to_address_book'.localized, action:'add_to_address_book', keyEquivalent:"", atIndex:0)
    item_0.setTarget(self)
    item_1 = theMenu.insertItemWithTitle('new_message'.localized, action:'new_message', keyEquivalent:"", atIndex:1)
    item_1.setTarget(self)
    theMenu
  end

これは私に次のようなものを与えます:

tokenField:menuForRepresentedObject:

何か素晴らしいことですが、私がここで求めているものではありません。

4

0 に答える 0