我做了一个小巧的可可应用程序,它可以调出IKPictureTaker,并在按下设置按钮时将图片保存到文件中。目前,如果按Esc或Command。窗口拍摄者将关闭。有没有办法禁用这种行为?禁用ESC和命令。在OSX Cocoa应用程序中
0
A
回答
2
另一种方法是隐藏关闭和取消按钮,所以它们不能被压:
IKPictureTaker *taker = [IKPictureTaker pictureTaker]; [taker setStyleMask:0]; //disable close button for(NSView *aView in [[taker contentView] subviews]){ if([aView isKindOfClass:[NSButton class]]){ NSButton *aButton = (NSButton*)aView; if([aButton action] == @selector(cancelButton:)) [aButton setHidden:YES]; } }
2
您需要及时将自己插入响应者链中的某个位置以捕获退出键事件,并将其禁用。您可能需要子类IKPictureTaker
。下面的代码段可以帮助你(source)。
- (void)keyDown:(NSEvent *)event {
if ([event keyCode] == 53) {
NSLog(@"Escape has been pressed");
}
}
0
如果您希望/需要下降到较低级别,请参阅CGEvent API。使用它,你会创建一个水龙头并吞下/修改特定的事件。
相关问题
- 1. COCOA OSX:应用程序重命名
- 2. Cocoa OSX应用程序挂在dispatch_async
- 3. 如何在Cocoa应用程序中处理ESC键?
- 4. JSch Esc命令和编码
- 5. Cocoa应用程序中无法检测ESC键?
- 6. 从Cocoa应用程序
- 7. 在OSX应用程序中运行终端命令?
- 8. OSX命令行C应用程序中的线程管理
- 9. 在Cocoa应用程序中定义和执行简单的AppleScript命令
- 10. 从Cocoa应用程序项目导出OSX在XCode中执行
- 11. 在非Cocoa应用程序中启动应用程序?
- 12. 从命令选项卡应用程序切换器和停靠在OSX中隐藏Java应用程序
- 13. OSX“打开”命令用应用程序创建新文件
- 14. 从stdin获取输入在Cocoa命令行应用程序的子进程中
- 15. Cocoa应用程序打包命令行工具?
- 16. 运行subprocess.call来运行Cocoa命令行应用程序
- 17. 从Cocoa Desktop应用程序执行终端命令
- 18. 在Cocoa应用程序中使用MongoDB
- 19. 在Cocoa应用程序中使用MySQL
- 20. 在Cocoa应用程序中使用SceneKit
- 21. 如何禁用MFC应用程序按ESC或ALTF + F4退出?
- 22. OSX Cocoa应用程序的空白进程名称?
- 23. 在Cocoa应用程序上禁用基于文档的功能
- 24. 在OSX命令行和安装的应用程序之间进行通信
- 25. 如何在我的Cocoa应用程序中运行终端命令?
- 26. Java命令行应用程序和Systray
- 27. Java应用程序和网络命令
- 28. MVC和命令行应用程序
- 29. 将版本信息添加到OSX命令行应用程序
- 30. ESC POS命令ESC *用于在打印机上打印位图
关闭按钮在我的应用程序无法使用,有什么我问的是如何防止它被当某人按下esc键或命令时关闭。 – Mike2012 2009-12-08 18:28:43
这是在esc/cmd上作用的取消或关闭按钮。所以禁用它们会给你你想要的行为。 但是如果你想让这个按钮可见,但是没有这个等价键,那么不用做[aButton setHidden:YES] do,[aButton setKeyEquivalent:@“”] – 2009-12-08 20:26:25
这对10.9 Mavericks不起作用。如果我错过了什么,请告诉我。谢谢。 – 2014-05-01 01:51:02