私は 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
これは私に次のようなものを与えます:
何か素晴らしいことですが、私がここで求めているものではありません。