を表示するためdoubleClickAction
に aを使用しています。このようなもの:NSTableView
NSPopover
NSInteger selectedRow = [dataTableView clickedRow];
NSInteger selectedColumn = [dataTableView clickedColumn];
// If something was not selected, then we cannot display anything.
if(selectedRow < 0 || selectedColumn < 0)
{
NSLog(@"Invalid selected (%ld,%ld)", selectedRow, selectedColumn);
return;
} // End of something was not selected
// Setup our view controller, make sure if there was already a popover displayed, that we kill that one off first. Finally create and display our new popover.
DataInspectorViewController * controller =
[[DataInspectorViewController alloc] initWithNibName: @"DataInspectorViewController"
bundle: nil];
if(nil != dataPreviewPopover)
{
[dataPreviewPopover close];
} // End of popover was already visible
dataPreviewPopover = [[NSPopover alloc] init];
[dataPreviewPopover setContentSize:NSMakeSize(400.0f, 400.0f)];
[dataPreviewPopover setContentViewController:controller];
[dataPreviewPopover setAnimates:YES];
[dataPreviewPopover showRelativeToRect: [dataTableView frameOfCellAtColumn: selectedColumn row: selectedRow]
ofView: dataTableView
preferredEdge: NSMinYEdge];
これはうまく機能します。ポップオーバーは、ダブルクリックしたセルで作成および削除されます。問題は、ポップオーバーの外のどこかをクリックすると(別のセルを1回クリックするなど)、ポップオーバーを消したいということです。私は周りを見回してきましたが、私の人生では、それを行う方法がわかりません.
これは、ポップオーバーに組み込まれていると思われるものです(iOSクラスにあると確信していますUIPopoverController
)ので、単純なものが欠けているのではないかと思っています。