NSPopover类似于iOS中自定义的popview也是点击一个button会弹出一个弹窗。
首先在xib中拖放两个NSPopover放到面板中,然后再分别拖动点击方法到控制器。
第二步就是在控制器中声明两个NSPopover变量,这样与拖放的两个NSPover相对应。
第三步就是分别懒加载NSPopver。
第四部就是声明两个控制器。
@property(nonatomic,strong)NSPopover *onePopover;
@property(nonatomic,strong)NSPopover *towPopover;
@property(nonatomic,strong)OneController *shareViewController;
@property(nonatomic,strong)TowController *feedbackViewController;
- (IBAction)onePopover:(id)sender
{
NSButton *button = sender;
//显示在button 下面
[self.onePopover showRelativeToRect:[button bounds] ofView:button preferredEdge:NSRectEdgeMaxY];
}
- (IBAction)towAction:(id)sender
{
NSButton *button = sender;
//显示在button 上面
[self.towkPopover showRelativeToRect:[button bounds] ofView:button preferredEdge:NSRectEdgeMinY];
}
懒加载
- (NSPopover*)onePopover
{
if(!_onePopover){
_onePopover = [[NSPopover alloc]init];
_onePopover.contentViewController = self.OneController;
_sharePopover.behavior = NSPopoverBehaviorTransient;
//_sharePopover.appearance = NSPopoverAppearanceHUD;
}
return _onePopover;
}
- (NSPopover*)towPopover
{
if(!_towPopover){
_towPopover = [[NSPopover alloc]init];
_towPopover.contentViewController = self.TowController;
_towPopover.behavior = NSPopoverBehaviorSemitransient;
}
return _towPopover;
}
- (OneController*)oneController
{
if(!_oneController){
_oneController = [[OneController alloc]init];
}
return _oneController;
}
-(TowController*)towController
{
if(!_towController){
_towController = [[TowController alloc]init];
}
return _towController;
}