我正在使用 pyobjc 将一些需要的 OSX 功能添加到一些随机 python 软件中。我需要从 python-land 访问 API 定义的 objc-land 常量。
此类常量的一个示例位于NSRunningApplication页面的最下方,特别是 NSApplicationActivationPolicy 的三个可能值。
就上下文而言,当前的任务是列出当前正在运行的、面向用户的应用程序。为此,以下代码可以正常工作:
from Foundation import *
from Cocoa import *
import objc
for runningApp in sorted(
NSWorkspace.sharedWorkspace().runningApplications(),
key=lambda x: x.localizedName()
):
if runningApp.activationPolicy() == 0:
# Do stuff
但是,当原始库中随时可用时,我宁愿不检查零(以使其更具可读性),也不要在我自己的代码中将虚拟 NSApplicationActivationPolicyRegular 值硬编码为零。
如何通过 pyobjc 从 python 访问此类 objc 常量?