- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由以下单个 .m
文件组成的应用程序:
#import <Cocoa/Cocoa.h>
int main(int argc, char* argv[]) {
[[[NSThread alloc] initWithBlock: ^{
sleep(2);
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Stop");
[[NSApplication sharedApplication] stop:nil];
});
}] start];
[[NSApplication sharedApplication] run];
NSLog(@"Run finished");
return 0;
}
根据the developer documentation , stop
应该停止主循环 (run
),但它没有(至少在 OS X 10.12 和 10.13 上没有)。还有terminate
,但这太快退出程序了。我还尝试设置一个实现 applicationShouldTerminate
的 NSApplicationDelegate
,但这从未被调用。
如何确保主运行循环(干净地)退出?
注意:共享应用程序主循环是必要的,因为 UI 工作正在其他地方完成。更具体地说,这在Go WDE中给出了问题。 UI 库,它使用 Cocoa 为 Go 应用程序提供一个窗口。
最佳答案
[C]alling this method from a timer or run-loop observer routine would not stop the run loop because they do not result in the posting of an NSEvent object.
调度到主队列的 block 类似,因为它不发布事件。您可以尝试在调用 -stop:
后发布 NSEventTypeApplicationDefined
事件。
关于objective-c - 停止 NSApplication 主事件循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48041279/
我遇到了一个奇怪的问题,我点击离开窗口。它放弃了主要和关键。然后我单击返回它,并且单击的 View 不响应鼠标单击。但第二次单击确实会导致 View 做出响应。就好像在第一次单击期间,窗口不是关键,而
我想知道是否允许使用 runModalForWindow() 启动多个模式循环。在我的应用程序中,我有以下设置:当用户在非模态窗口 A 中按下按钮 A 时,将使用 runModalForWindow(
您好,我是 cocoa 框架的新手,因此需要帮助来更好地理解该框架。 我当前的重点领域是了解 NSApplication 默认创建的线程数以及控制或限制它的方法。也就是说,我看到创建了一个空窗口的基本
我的窗口中有一个 NSTextField 和 4 个具有等效键的菜单项 ←↑→↓. 当选择文本字段并按箭头键时,我希望光标在文本字段中移动,但会执行相应的菜单项操作。 所以响应者链中肯定存在问题。为了
当我的窗口加载时,我遇到了崩溃(下面的回溯)。这似乎表明核心动画正在发生一些事情,但我没有启动任何动画,只是显示窗口。 将特定堆栈 View 的剪切阻力从 1000 更改为 750 可以暂时避免崩溃,
我有一个应用程序,其中的 main.m 返回 NSApplicationMain(argc, (const char **) argv);。 我想在 -applicationDidFinishLaun
UIApplication 和 NSApplication 有什么区别? (因为我没有从他们的文档中得到它...) 有人可以给我一些有用的链接来详细解释它们之间的区别吗? 另外,AppNameAppD
我创建了 NSApplication 子类: class MyApplication: NSApplication { override func sendEvent(theEvent: NS
这可能吗,就像当您调用“hide:”时它会调用“applicationWillHide:”? 我的应用程序使用可变数量的窗口,具体取决于可用屏幕的数量,因此当调用“miniaturizeAll:”时,
我有一个由以下单个 .m 文件组成的应用程序: #import int main(int argc, char* argv[]) { [[[NSThread alloc] initWithBlo
我需要在 MonoMac 中继承 NSApplication 来重写 NSApplication 的 sendEvent(C# 术语中的 SendEvent)方法,以便接收媒体键事件(Macbook
我已经搜索了很长一段时间,但根本找不到任何东西,我已经有了可以创建的窗口,但现在当我尝试调用 makeKeyAndOrderFront 时,没有应用程序可以调用它,所以我想知道是否有人可以给出一个关于
我遇到了无法访问应用程序主窗口的问题,因为它返回 nil。 let window = NSApplication.sharedApplication().mainWindow 我发现了类似的问题: H
好吧,这真的难倒我了: 我在窗口上创建了一个模态表 -(IBAction) login: (id) sender { [NSApp beginSheet:loginWindow modalFor
一个NSStatusItem应用程序,并将NSStatusItem的 View 设置为myView [statusItem setView:myView]; 这样 myView 可以显示在状态栏中,我
看来我无法从“系统偏好设置” Pane 中控制 NSApp 委托(delegate),这是可以理解的。当程序激活时,是否有其他方法可以通知我的对象? 最佳答案 Cocoa 框架中的大多数委托(dele
我试图将我的应用程序分成不同的子进程,每个子进程都做一件非常具体的事情。主要原因是稳定性和更好的内存利用率,因为我使用保守的垃圾收集器(boehm-weisser)。 我不想用一个庞大的过程来完成这一
我目前正在尝试编写我的第一个 CoreData-Application,它需要访问应用程序委托(delegate)来获取某些内容。因此,我试图在我的委托(delegate)中创建一个小变量,我想读取该
我来自 Cocoa touch 背景,有一点我被困住了,我试图从头开始创建一个 ViewController 并将我的 xib 中的对象连接到我的新 ViewController 中的操作。我将文件的
在我的 mac os x 应用程序中,我对 NSApplication 进行子类化并重写它的 -sendEvent: 方法。苹果提示: The app includes 'OBJC_IVAR_$_NS
我是一名优秀的程序员,十分优秀!