すべての機能を備えたxibを備えたウィンドウコントローラーから派生したクラスがあります。このxibには、ホールのリストを表示するテーブルビューがあります。ホール名をダブルクリックすると、そのホールの機能を表示するポップオーバーが表示されます。私はビューコントローラークラスを持っています。このクラスでは、プログラムでポップオーバーを作成します。
NSPopover *popover;
NSViewController *popoverViewController;
-(void)displayPopover{
popover = [[NSPopover alloc] init];
[popover setBehavior: NSPopoverBehaviorApplicationDefined];
[popover setDelegate: self];
popoverViewController = [[CHBPopover alloc] initWithNibName: @"MYViewController" bundle: nil];
[popover setContentViewController: popoverViewController];
[popover setContentSize: popoverViewController.view.frame.size];
[popover showRelativeToRect: NSMakeRect(700, 400, 5, 5)
ofView: [[NSApp keyWindow] contentView]
preferredEdge: NSMaxXEdge];
}
私のウィンドウコントローラークラスには、次のようなメソッドがあります。
-(IBAction)featuresDisplay:(id)sender{
if([_hallNamesList selectedRow] == -1){
[self setFeaturesList:nil];
}
else {
//[self.hallFeaturesPopOver showRelativeToRect:[_hallNamesList frameOfCellAtColumn:0 row:[_hallNamesList selectedRow]] ofView:_hallNamesList preferredEdge:NSMaxXEdge];
// [pop.displayPopover ];
NSDictionary *hallFeaturesDictionary;
hallFeaturesDictionary = [_hallNames objectAtIndex:[_hallNamesList selectedRow]];
_hallId=[hallFeaturesDictionary valueForKey:@"hallId"];
[officeDetails setHallName:[hallFeaturesDictionary valueForKey:@"hallName"]];
_featuresList=[conferenceHall getConferenceHallFeaturesWithDetails:officeDetails];
NSLog(@"features list=%@",_featuresList);
[self setFeaturesList:[conferenceHall getConferenceHallFeaturesWithDetails:officeDetails]];
}
}
このIBActionでそのポップオーバーメソッドをどのように呼び出すのですか?行をダブルクリックしてポップオーバーを表示する必要があります。これを行うにはどうすればよいですか?ありがとう。