这是我的问题,我有一个无笔尖的应用程序,这个应用程序显示(具有淡入/淡出效果)NSWindow,看起来像10.8通知。
在此通知中,我有2个NSButton,它们以编程方式创建:
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皮肤。
问题:当我点击其中一个按钮时,它会在5次中有1次...
问题出在哪里?线程问题?透明度?
感谢您的投入!
@Rob Keniger :是的我有一个runloop,我用这个启动我的应用程序:
[NSApplication sharedApplication];
我还有一个动态的NSMenuBar就是那个可以正常工作的应用程序。
修改 我找到了一个解决方法,但我想知道我在这里缺少什么。我只是将按钮的初始化从我的自定义视图的initWithFrame方法放到我的窗口的initWithContentRect方法来托管这个相同的视图。 知道它为什么会这样运作吗?