모든 기능이있는 xib가있는 창 컨트롤러에서 파생 된 클래스가 있습니다. 이 xib에는 홀 목록을 표시하는 tableview가 있습니다. 홀 이름을 두 번 클릭하면 해당 홀의 기능을 표시하는 팝 오버가 생깁니다. 내가보기 컨트롤러 내가 프로그래밍 방식을 통해 팝업을 만들 ILK 것이다 클래스, 내 창 컨트롤러 클래스에서NSPopOver 표시
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의 popover 메소드? 행을 두 번 클릭하고 팝을 표시해야합니다. 어떻게해야합니까? 감사.
그냥 '[self displayPopover]'가 팝업을 표시 할 위치를 전달하지 않습니까? – trojanfoe
http://stackoverflow.com/questions/tagged/nspopover이 링크는 반드시 당신을 화나게 할 것입니다. nspopover에 대한 도움이 없습니다. 이유는 osx에서 매우 적습니다. –
예. 나는 [self displayPopover]로 시도했다. 하지만 표시되지 않았습니다. – user2118335