这是我的问题,我有一个无笔尖的应用程序,这个应用程序显示(具有淡入/淡出效果)一个看起来像 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 方法中,该方法托管了这个相同的视图。知道为什么它会这样工作吗?