问题标签 [macos-carbon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3583 浏览

iphone - 删除非空文件夹和特定文件类型

  1. 删除文件夹、删除所有子文件夹和文件的最佳方法是什么?
  2. 删除具有特定扩展名的文件的最佳方法是什么?例如,如果我只想删除带有“.txt”扩展名的文件?

可可或碳。

0 投票
2 回答
3806 浏览

c++ - 从另一个线程调用 CFRunLoopStop 是否安全?

我的(主要是 POSIX)应用程序的 Mac 版本生成了一个子线程,该线程调用 CFRunLoopRun() 来执行事件循环(从 MacOS 获取网络配置更改事件)。

到了收拾东西离开的时候,主线程在子线程的run-loop上调用CFRunLoopStop(),此时CFRunLoopRun()在子线程中返回,子线程退出,主线程(即阻塞等待子线程退出)可以继续。

这似乎可行,但我的问题是:这是一种安全/推荐的方法吗?特别是,从另一个线程调用 CFRunLoopStop() 是否容易导致竞争条件?据我所知,Apple 的文档对此主题保持沉默。

如果从主线程调用 CFRunLoopStop() 不是解决方案,那么什么是好的解决方案?我知道我可以让子线程调用 CFRunLoopRunInMode() 并经常唤醒以检查布尔值或其他内容,但如果可以避免的话,我不希望子线程进行任何轮询。

0 投票
1 回答
1578 浏览

objective-c - 将 Carbon 代码移植到 Cocoa 的策略

我正在寻找有关使 Carbon 代码准备好 64 位的策略和文章。

64 位的 Carbon 不存在,也不会存在。这几乎是一个死胡同

因此,为了将 Carbon 应用程序和工具包带入 64 位,他们的 GUI 部分必须用 Cocoa 和 Objective-C 重新编写,对吧?

我怎样才能最大限度地减少我必须投入到过渡中的努力?如何最大限度地减少所需的 Objective-C 代码量?

0 投票
3 回答
1703 浏览

macos - Which API can be used to _capture_ the mouse when moving OS X "Carbon" windows?

On request I have implemented support for moving an OS X window by dragging it using an area within the content part of the window, i.e replicating the drag and move functionality of the title bar but in another area.

The problem I have yet to resolve is the fact that if the user drags the mouse quickly it can leave the window area and then no more mouse move events are received.

On windows this type of problem can simply be fixed by calling the win32 method SetCapture(), what's the corresponding OSX method?

This application is a cross platform C++ application using Carbon for the OS X specific parts. (And yes, I know all about the Cocoa benefits but this is an older code base and there no time nor money for a Cocoa port at this point in time.)

I have found Carbon API methods like for example TrackMouseLocation() but can't really see how I could use them for this application. In listing 2-7 here http://developer.apple.com/legacy/mac/library/documentation/Carbon/Conceptual/Carbon_Event_Manager/Tasks/CarbonEventsTasks.html the mouse is captured but the problem is that TrackMouseLocation() blocks waiting for input. Blocking is something this application can not do since it also host a flash player that must be called many times per second.

The protototype I have assembled when trying to figure this out basically looks like this:

Any ideas appreciated?

0 投票
1 回答
349 浏览

objective-c - 基于 Intel 的 mac 上的 Carbon 开发

我正在尝试在 mac 上创建一个应用程序。我正在尝试开发一个用户身份验证模块,该模块使用操作系统授权对话框并在我的应用程序中使用它的功能。我有两个关于mac开发的问题;

1) 是否有可能将碳应用移植到可可?(我对 64 位没有任何顾虑,为了简单起见,我想用可可开发,也因为它不涉及低级编程。)

2)其次,请告诉我,我正在使用基于英特尔的迷你 Mac 和 OS 10.5,那么,如果不可能将碳应用程序移植到可可,那么我可以在这个基于英特尔的迷你 Mac 上为 Carbon 开发吗?

问候

0 投票
4 回答
381 浏览

objective-c - Carbon VS Objective-C & 基于intel的mac

是否可以在objective-C中开发carbon应用程序,此外,如果我没有基于power PC的mac并且我有基于intel的mac,我还能为Carbon开发应用程序吗?

问候。

0 投票
4 回答
4177 浏览

cocoa - 在 Cocoa/Carbon 中全局隐藏鼠标光标?

有没有办法全局隐藏 Cocoa(或 Carbon)中所有应用程序的鼠标光标?或者至少用别的东西代替它?

编辑:感谢大家的投入,但事实证明 Daniel Jalkut 不久前找到了解决方案 :) http://lists.apple.com/archives/carbon-dev/2006/Jan/msg00555.html

0 投票
2 回答
2821 浏览

objective-c - 在 OS X 上以编程方式获取具有 pid 的进程的当前工作目录

有没有办法在 OS X 上以编程方式使用它的 PID 获取进程的当前工作目录?

Cocoa、Carbon 或 AppleScript 都是可以接受的。

将“pwd”发送到当前终端窗口/选项卡是不可接受的(不想影响工作区)。

linux 命令“pwdx”也是不可接受的(以防您阅读“Cocoa”部分)

0 投票
1 回答
1056 浏览

python - 等效于 Mac 的 Carbon 中的 GetCursorPos()

背景 我们正在将基于 PythonOgre 的游戏移植到 Mac,而发行商要求鼠标能够离开窗口。在 Windows 上,我们围绕 OIS(面向对象的输入系统)进行鼠标控制;也就是说,我们不会让 OIS 将鼠标保持在窗口边框内,然后使用GetCursorPos()Win32 API 在屏幕坐标中跟踪鼠标光标。

我们不能轻易地修改 Ogre3d 循环——它至少需要重建库,加上重建包装器,这很容易在我们的构建机器上花费大约一整个工作日。理论上我们可以修改 OIS,但我们的日程安排很紧,所以出于同样的原因,我们也不想不必要地使用它。

问题 什么是获取屏幕空间鼠标光标坐标的 Carbon API,相当于 Windows API GetCursorPos()

0 投票
2 回答
787 浏览

qt - Carbon,LSUIElement,并显示一个窗口

我有一个 Carbon LSUIElement 应用程序,它在后台运行(可能在菜单栏中带有一个图标,取决于首选项),偶尔需要向用户显示一个对话框 - 有时是为了响应用户事件,但有时是为了响应后台任务失败或类似情况。

(我使用的是 Qt 4.5,所以该应用程序是基于 Carbon 的;使用 Qt 4.6 的东西将基于 Cocoa,但听起来好像问题也可能存在在那里)。

问题是当我打开一个窗口并显示它时,它并没有被带到前面。我认为这是作为 LSUIElement 应用程序的人工制品。Qt 使用 Carbon 中的 SelectWindow 和 Cocoa 中的 [makeKeyAndOrderFront] 来将窗口(和应用程序)置于最前面。

为了解决这个问题,我尝试直接访问窗口服务器:(前几个步骤是获取 WindowID,使用 Qt-Cocoa 会更简单,因为我可以使用 NSWindow:nativeWindow)

这有点工作 - 窗口出现在前面,但它没有突出显示或键盘聚焦。是否有额外的步骤来解决这些问题,或者是否有更简单的解决方案来解决整个问题?