作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您像这样调用 TransformProcessType() :
ProcessSerialNumber psn = { 0, kCurrentProcess };
(void) TransformProcessType(&psn, kProcessTransformToForegroundApplication);
然后,除非您在应用程序中足够早地调用它(例如,在 applicationWillFinishLaunching 中),否则 cocoa 应用程序菜单不会显示。
最佳答案
我向 Apple 寻求帮助,他们为我提供了很好的帮助。引用:
The reason why the menu bar isn't show when you call TransformProcessType is that your app is already the active app (that is, [[NSRunningApplication currentApplication] isActive] returns YES) and the menu bar for an app is shown when the app is activated
这是他们的解决方法:
- (void)transformStep1 {
for (NSRunningApplication * app in [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.apple.finder"]) {
[app activateWithOptions:NSApplicationActivateIgnoringOtherApps];
break;
}
[self performSelector:@selector(transformStep2) withObject:nil afterDelay:0.1];
}
- (void)transformStep2
{
ProcessSerialNumber psn = { 0, kCurrentProcess };
(void) TransformProcessType(&psn, kProcessTransformToForegroundApplication);
[self performSelector:@selector(transformStep3) withObject:nil afterDelay:0.1];
}
- (void)transformStep3
{
[[NSRunningApplication currentApplication] activateWithOptions:NSApplicationActivateIgnoringOtherApps];
}
关于macos - 调用 TransformProcessType() 时,应用程序菜单不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7596643/
如果您像这样调用 TransformProcessType() : ProcessSerialNumber psn = { 0, kCurrentProcess }; (void) Transform
我是一名优秀的程序员,十分优秀!