popUpContextMenu: withEvent: forView:がクラスメソッドなのに対し、popUpMenuPositioningItemはインスタンスメソッド。
第1引数がNSMenuItemなので、特定のItemだけpopupさせるのかと思ったのだけれど、よく読めばItemはnilでも構わないということなので試してみる。
NSPoint point= NSMakePoint([cell drawedRect].origin.x, [cell drawedRect].size.height); NSMenuItem* activeitem=[menu itemAtIndex:1]; [menu popUpMenuPositioningItem:activeitem atLocation:point inView:self];
これでこうなった。
マウスカーソルがある場所でクリックしているので、これで期待通りの動作となった。なーんだ、できるんじゃん。ドキュメントをもっとしっかり読まないといかんなあ。
ただし初めはMenuが無効な状態で表示されていた。itemを生成するとき、setTargetしないと有効にならないのね。(^^;)
第1引数でNSMenuItemを指定すると、そのItemが指定したポジションのTopLeftにくるように描画されている。なるほど便利だなあ。
あとはMenuで選択されたディレクトリを表示できるようにすればいい、と。これは明日以降。
0 件のコメント:
コメントを投稿