小编bha*_*ley的帖子

Objective-C 项目的 CMakeLists.txt

我正在使用 Objective-C 和 CMake 在 macOS 上简单地创建一个 hello world 可执行文件。据我了解,CMake 本身并不支持构建 Objective-C。您必须首先添加

\n
set(CMAKE_C_FLAGS "-x objective-c")\n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
set(CMAKE_CXX_FLAGS "-x objective-c++")\n
Run Code Online (Sandbox Code Playgroud)\n

甚至可以创建 Makefile。我遇到困难的部分是如何适当地链接现有框架。我已遵循这篇文章中的说明以及它所基于的教程:无法将 MacOS 框架与 CMake 链接\n我还尝试将库链接到:

\n
set(CMAKE_EXE_LINKER_FLAGS "-framework fm1-framework fm2\xe2\x80\xa6")\n
Run Code Online (Sandbox Code Playgroud)\n

我现在可以成功获得 CMake 生成的 Xcode 项目,但是当我打开该项目时,我在 CMakeLists.txt 文件中指定的框架都不在 \'resources\' 文件夹中。使用此 Xcode 项目,我可以编译该项目,但是当我运行可执行文件时,出现错误:

\n
\n

“2014-01-06 18:02:35.859 HelloWorld[62641:303] 应用程序包中没有 Info.plist 文件或 Info.plist 文件中没有 NSPrincipalClass,正在退出
\n程序以退出代码结束:1”

\n
\n

我还尝试在终端中手动运行 CMake 生成的 makefile,并收到许多警告(在链接期间),所有警告都说:

\n
\n

CMakeFiles/HelloWorld.dir/AppDelegate.mo:3:2252: 警告: 空字符
\ignored [-Wnull-character]
\n...

\n
\n
\n

CMakeFiles/HelloWorld.dir/AppDelegate.mo:3:2263: 警告: 空字符 …

xcode objective-c cmake

8
推荐指数
2
解决办法
2万
查看次数

如何检测CoreAudio中何时断开音频设备?

有没有办法为任何音频设备设置一个侦听器来检测它是否被删除或拔掉?我发现这篇文章有助于你只关心内置的音频相关设备:

如何在耳机插入/拔出时收到通知?苹果电脑

但我正在寻找更通用的解决方案(即所有设备,USB,HDMI等).它是OSX特有的.

关于如何做到这一点的任何想法?

macos device core-audio

5
推荐指数
1
解决办法
1075
查看次数

如何在NSTextField(Cocoa)中单击鼠标右键来禁用上下文菜单?

我正在开发一个具有可编辑文本字段的Cocoa应用程序.这些文本字段需要接受值,但不需要进行拼写检查或使用默认上下文菜单中给出的任何其他选项.我已经读过删除右键单击/ opt +单击上下文菜单的最简单方法是覆盖该功能:

rightMouseDown:(NSEvent *) 
Run Code Online (Sandbox Code Playgroud)

我在自定义的NSTextfield类中完成了这个.启用和取消选中文本框时,此修复程序会阻止用户右键单击,但只要用户双击/输入文本字段进行编辑,就会返回默认的右键单击功能.

这是因为firstResponder在尝试编辑字段时切换到继承链中的类吗?这种方法是禁用此NSTextField的所有上下文菜单功能的正确方法吗?

谢谢!

macos cocoa contextmenu objective-c nstextfield

2
推荐指数
1
解决办法
1913
查看次数