objective-c OSX类继承

时间:2013-03-10 21:00:14

标签: objective-c

我在“导航”类中有一个方法“ShowPop:nil” - 它显示一个弹出窗口。

我从AppDelegate.h继承了Navigation类。当我从AppDelegate.m调用[Self ShowPop:nill]时,popover不会弹出但方法确实会运行。

注意,我知道popover方法有效,因为它从同一方法的IB按钮连接中完美弹出。

以下示例代码。

@interface Navigation_Main : NSObject
{
}
    @property (weak) IBOutlet NSPopover *popover_AddStuff;
    - (IBAction)ShowPop:(id)sender;

- (IBAction)ShowPop:(id)sender;
{
    [_popover_AddStuff showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMaxYEdge];
}

**#import "Navigation_Main.h"**
@interface AppDelegate : Navigation_Main <NSApplicationDelegate,NSTextFieldDelegate>
{
    - (IBAction)showPopup:(id)sender;
}

- (IBAction)showPopup:(id)sender {
    //[self ShowPop:nil]; ---No pop
    [super ShowPop:nil];  ---No pop
}

1 个答案:

答案 0 :(得分:0)

当定位视图为nil时,NSPopover会抛出异常,并且(因此)不会显示弹出窗口。确保传递一个视图,使弹出窗口相对于而不是nil显示。