2

这是我的问题,我有一个无笔尖的应用程序,这个应用程序显示(具有淡入/淡出效果)一个看起来像 10.8 通知的 NSWindow。

在这个通知上,我有 2 个 NSButtons,它们是这样以编程方式创建的:

    NSImage *btnNeutral = [[NSImage imageNamed:@"btn-toaster-n.png"] retain];
    [btnNeutral setTemplate:NO];
    NSImage *btnPressed = [[NSImage imageNamed:@"btn-toaster-clic.png"] retain];
    [btnPressed setTemplate:NO];

    m_connectButton = [[NSButton alloc] initWithFrame:NSMakeRect(284, 49, 77, 22)];
    [m_connectButton setTarget:self];
    [m_connectButton setAction:@selector(connect:)];
    [m_connectButton setImage:btnNeutral];
    [m_connectButton setAlternateImage:btnPressed];
    [m_connectButton setButtonType:NSMomentaryChangeButton];
    [[m_connectButton cell] setImageDimsWhenDisabled:NO];
    [m_connectButton setBordered:NO];
    [m_connectButton setFocusRingType:NSFocusRingTypeExterior];
    [m_connectButton setTitle:Localizer::getInstance()->getLocalizedString(@"SYSTRAY_BALLOON_CONNECT_ACTION")];
    [m_connectButton setEnabled:YES];
    [self addSubview:m_connectButton];

注意:我的 NSWindow 是透明的,我的 NSView 是透明的,但使用 NSImage 进行蒙皮,我的按钮也是如此。

问题:当我单击 2 个按钮之一时,它会工作 5 次中的 1 次...

问题出在哪里?线程问题?透明度 ?

感谢您的输入 !

@Rob Keniger:是的,我有一个运行循环,我用这个初始化我的应用程序:

[NSApplication sharedApplication];

我也有一个动态的 NSMenuBar 是那个运行良好的应用程序。

编辑 我找到了一种解决方法,但我想知道我在这里缺少什么。我只是将按钮的初始化从我的自定义视图的 initWithFrame 方法放到了我的窗口的 initWithContentRect 方法中,该方法托管了这个相同的视图。知道为什么它会这样工作吗?

4

0 回答 0