cocoa相关内容

如何获取 CoreData Debug 参数以输出到控制台?

根据 Apple 关于调试核心数据的文档 它说我们应该能够将一个参数传递给应用程序,该应用程序将输出发送到 SQLite 的 SQL 核心数据. 我已经进入了 XCode 中可执行文件的参数选项卡并指定了参数: -com.apple.CoreData.SQLDebug 1 但是,我在控制台中没有看到 SQL.然后我尝试在 Apple 提供的 CoreDataBooks 应用程序中使用此参 ..
发布时间:2021-12-08 18:31:19 移动开发

为什么我的可转换核心数据属性不使用我的自定义 NSValueTransformer?

我有一个带有相当简单数据模型的 Core Data 应用程序.我希望能够将 NSImage 的实例作为 PNG 位图 NSData 对象存储在持久存储中,以节省空间. 为此,我编写了一个简单的 NSValueTransformer 将一个 NSImage 转换为 PNG 位图格式的 NSData.我正在我的应用程序委托中使用此代码注册值转换器: + (void)initialize{[NS ..
发布时间:2021-12-07 11:05:19 C/C++开发

@synchronized 是否保证线程安全?

参考此答案,我想知道这是正确的吗? @synchronized 不会使任何代码“线程安全" 因为我试图找到任何文档或链接来支持这个声明,但没有成功. 对此的任何评论和/或答案将不胜感激. 为了更好的线程安全,我们可以使用其他工具,这是我知道的. 解决方案 @synchronized 如果使用得当,确实可以使代码线程安全. 例如: 假设我有一个访问非线程安 ..
发布时间:2021-12-06 21:24:08 移动开发

没有编辑菜单的对话框中的 Cocoa 键盘快捷键

我有一个显示菜单栏状态项的 LSUIElement 应用程序.该应用程序可以显示一个包含文本字段的对话窗口. 如果用户右键单击/按住 Control 单击文本字段,则会出现一个允许剪切、复制、粘贴等操作的菜单.但是,标准的 Command-X、Command-C 和 Command-V 键盘快捷键不会在该领域工作.我认为这是因为我的应用程序没有提供定义了这些快捷方式的编辑菜单. 我已尝 ..
发布时间:2021-12-06 21:21:38 其他开发

如何使用 Cocoa api 启动应用程序并将其置于前台?

我对可可编程非常陌生,我找不到执行以下操作的方法: 按名称启动特定应用程序 做一些工作 稍后带来应用程序,我开始成为前端流程 从我在 Carbon API 中发现的内容来看,我应该使用的调用是 launchApplication() 和 setFrontProcess(). 但是如何在 Cocoa 中做到这一点?IE.启动它,获取 PID,将该 PID 设置为前端进程.我试着 ..
发布时间:2021-12-06 21:16:09 其他开发

在 Mac OS X 中模拟按键事件

我正在编写一个应用程序,我需要在 Mac 上模拟按键事件,给定代表每个键的代码.看来我需要使用 CGEventCreateKeyboardEvent 函数来创建事件.问题是这个功能需要一个Mac键码,而我有的是一个代表特定键的代码.因此,例如,我收到: KEY_CODE_SHIFT 或 KEY_CODE_A - 这些都是在某处定义的数字常量. 我需要将这些常量转换为 CGKeyCode ..
发布时间:2021-12-06 21:15:15 C/C++开发

使用 Python 在 Mac OS X 中查找当前活动窗口

有没有办法在 Mac OS X 上使用 Python 找到给定时间当前活动窗口的应用程序名称? 解决方案 这应该有效: #!/usr/bin/python从 AppKit 导入 NSWorkspaceactiveAppName = NSWorkspace.sharedWorkspace().activeApplication()['NSApplicationName']打印 active ..
发布时间:2021-12-06 21:12:48 移动开发

“捆绑显示名称"和“捆绑显示名称"有什么区别?和“捆绑名称"在可可应用程序的信息 plist 中

这是一个很好的问题: 捆绑包名称、可执行文件名称、产品名称...任何其他? 但我只是想知道可可应用程序信息 plist 中“包显示名称"和“包名称"之间的区别. 解决方案 我认为其他任何答案都不能简明扼要地回答这个问题. CFBundleDisplayName - 显示:在图标下方.根据文档,应该是本地化的,但前提是应用程序本身是本地化的,否则会有某种惩罚(如果这是真的我 ..
发布时间:2021-12-06 21:11:44 移动开发

将字符串转换为 URL(为什么结果变量为零)

我正在尝试从字符串值创建 URL 变量.我不明白为什么结果 URL 为 nil 我已经建立了一个新的 Xcode macOS 项目,在视图上放置了一个简单的按钮,为该按钮创建了一个操作并实现了以下代码.结果网址为零. 我在 Swift 的操场上尝试了同样的方法,结果奏效了...... @IBAction func buttonClicked(_ sender: Any) {让 ur ..
发布时间:2021-12-06 21:07:44 移动开发

类是 Objective-C 中的对象吗?

好的,所以我明白对象是必须分配和初始化的类的实例,但类本身是对象吗? 我知道当你创建一个新类时,它是其他东西的一个实例,比如 NSObject.那么,如果这使它成为一个类,那么对象不仅可以包含变量和方法,还可以包含其他对象,对吗? 抱歉,这可能真的很基础,但我正在阅读两本关于可可和 xcode 的书,这一点有点不清楚(可能是因为我缺乏其他语言的经验). 解决方案 这里 是 Gr ..
发布时间:2021-12-06 21:06:04 移动开发

我的应用程序如何检测到另一个应用程序窗口的更改?

在 Mac 上的 Cocoa 中,我想检测属于另一个应用程序的窗口何时被移动、调整大小或重新绘制.我该怎么做? 解决方案 您需要使用 Accessibility API,它们是纯 C 语言,位于 ApplicationServices 框架内.例如: 首先创建一个应用程序对象: AXUIElementRef app = AXUIElementCreateApplication( t ..
发布时间:2021-12-06 21:04:22 C/C++开发

NSArray 等效于 Map

给定 NSDictionary 对象的 NSArray(包含类似的对象和键)是否可以将执行映射到指定键的数组?例如,在 Ruby 中,它可以通过: array.map(&:name) 解决方案 更新:如果您使用的是 Swift,请参阅 地图. BlocksKit 是一个选项: NSArray *new = [stringArray bk_map:^id(NSString *obj) ..
发布时间:2021-12-06 20:59:18 移动开发

实施 30 天的计时赛

针对独立 Mac 开发者的问题: 我如何以非邪恶的方式实施 30 天的计时赛?在首选项中放置计数器不是一种选择,因为对于普通用户来说,每月擦除一次首选项不是问题.将计数器放在某个隐藏文件中听起来有点狡猾 - 作为一个用户,当应用程序在我的硬盘上散布随机文件时,我讨厌.有什么想法吗? 解决方案 这个问题在 cocoa-dev 邮件列表中反复出现,共识的答案总是尽可能做最简单的事情.坚定 ..
发布时间:2021-12-06 20:54:55 其他开发

获取 macOS 上的 CPU 百分比使用率

我是 Objective-C 的初学者,我决定尝试编写一些简单的应用程序,所以我正在尝试制作一个可以测量 CPU 使用率等的应用程序.是否有一种简单的方法可以在 Cocoa 应用程序中使用 Objective-C 获取诸如 CPU 百分比使用率之类的信息? 我发现了这个问题Determine Process Info Programmatically in Darwin/OSX 类似,但不完 ..
发布时间:2021-12-06 20:54:34 移动开发

你需要在 GCD 的块内创建一个 NSAutoreleasePool 吗?

通常,如果您在 NSOperationQueue 上生成后台线程或运行 NSOperation,您需要为该线程或操作创建一个 NSAutoreleasePool,因为默认情况下不存在. 相同的规则是否适用于放置在 Grand Central Dispatch 队列中并将在非主线程上运行的块?也就是说,您是否需要在每个分派到主队列以外的任何块中创建一个 NSAutoreleasePool? ..
发布时间:2021-12-06 20:51:49 C/C++开发

如何将 NSImage 保存为新文件

如何将 NSImage 保存为某个目录中的新文件(png、jpg、...)? 解决方案 做这样的事情: NSBitmapImageRep *imgRep = [[图像表示] objectAtIndex: 0];NSData *data = [imgRep representationUsingType: NSPNGFileType 属性: nil];[数据写入文件:@"/path/to/ ..
发布时间:2021-12-06 20:51:39 其他开发

如何为 Mac 创建菜单栏应用程序

编辑:这是一个很好的现成菜单栏应用程序 此处(github 源)通过此答案. 我想知道如何制作菜单栏应用程序,这样做的要求是什么? 我看到一个简单的菜单栏应用程序是使用浏览器打开链接,我想创建类似的东西. 这是我喜欢制作的类似应用程序. 解决方案 NSStatusItem 就是你要找的.还将字符串值为 1 的 LSUIElement 添加到您的 Info.plist 以将 ..
发布时间:2021-12-06 20:47:03 其他开发

如何隐藏 Dock 图标

我想优先选择隐藏 Dock 图标并显示 NSStatusItem.我可以创建 StatusItem,但我不知道如何从 Dock 中删除该图标.:-/ 有什么想法吗? 解决方案 我认为您正在 Info.plist 中寻找 LSUIElement LSUIElement(字符串).如果此键设置为“1",则启动服务将应用程序作为代理应用程序运行.代理应用程序不会出现在 Dock 或强 ..
发布时间:2021-12-06 20:42:18 其他开发

是“EXC_BREAKPOINT (SIGTRAP)"调试断点引起的异常?

我有一个多线程应用程序,它在我所有的测试机器上都非常稳定,而且似乎对我的几乎每个用户都很稳定(基于没有崩溃的投诉).但是,该应用程序经常崩溃,因为一位用户非常友好地发送了崩溃报告.所有崩溃报告(约 10 个连续报告)看起来基本相同: 日期/时间:2010-04-06 11:44:56.106 -0700操作系统版本:Mac OS X 10.6.3 (10D573)报告版本:6异常类型:EXC_B ..
发布时间:2021-12-06 20:41:01 其他开发