- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Python 和 PyObjC 编写一个简单的 OSX 应用程序。我使用 Interface Builder 设计了设置对话框,并使用 ibtool 对其进行编译,然后从 Python 加载它。问题是如何从 Python 代码访问我在这个窗口中的控件?我之前玩过 iPhone 开发,我记得我需要在 Controller 类中有一个 IBOutlet,它将连接到界面构建器中的 UI 控件。在 Python 中它应该看起来像这样:
class MyClass(NSObject):
my_outlet = objc.IBOutlet('my_outlet')
但由于我不在 XCode 中工作(我只有一个 .py 文件和一个 .xib 文件),Interface Builder 不知道我的 socket 。在这种情况下我该如何进行绑定(bind)?或者我还能如何从代码访问 UI 元素?
最佳答案
首先,是否使用Xcode与NIB加载无关(除了更方便)。
正如 Ole 所说,您可以使用 IB 将您需要的 socket 手动添加到文件所有者或 NIB 文件中的自定义对象实例。通过这样做,一切都会“正常工作”。
然而,这个陈述是促使我做出相对相似的回答的原因:
all I have is a .py file and a .xib file
您是否正在尝试在 .app 包装器之外编写一些 UI 代码?如果是这样,那就是一个完全不受支持的模式,很难得到正确的,并且很可能会突破软件更新或主要版本(就像过去多次发生的那样)。
解决问题的最佳方法是使用 Xcode 项目并构建标准应用程序。模板不再随开发工具一起提供。只需单独下载它们。
如果您需要从命令行运行它,您仍然可以这样做。
关于python - 带有 PyObjC 和 Interface Builder 的 IBoutlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1887102/
我不小心安装了 pyobjc 2.2 和 easy-install pyobjc,这导致了问题:当我尝试导入它时出现错误 Incompatible library version: _objc.so
我构建了一个 pyobjc 应用程序,发现它似乎需要很长时间才能加载。 我添加了日志记录来测量加载每个步骤所需的时间。在进入 AppHelper.runEventLoop() 之前,应用程序需要花费
我正在尝试使用 PyObjC 制作一个应用程序,并且正在努力寻找如何记录箭头键(向左和向右)。我希望能够记录用户每次按下左右箭头键的时间。我正在使用网上找到的另一个例子。我想使用键盘上的箭头键,而不是
编辑:感谢您的建议。我仍然不清楚自动释放池的实际处理方式。 这是实际的代码: import platform, time if (platform.system().lower() == "darwi
我已经在 Mac 上安装了 PyObjC,但我根本无法让它工作。即使尝试导入 AddressBook 类也会立即失败。 Python 2.7.2 (v2.7.2:8527427914a2, Jun 1
我理解 PyObjC 的概念,但找不到任何关于它到底是什么或如何开始使用它的信息。 它是否像一个转换器,您可以在其中输入 python 文件并获得一个 objective c 文件?或者它是一个你可以
Xcode最强大的功能之一就是Intellisense completion,当您键入Foundation/Cocoa/UIKit API的名称时,它会弹出一个潜在候选列表。我对MacRuby,PyO
我正在使用此层次结构在 PyObjC 中以编程方式创建一个菜单。 NSMenu (setMainMenu on NSApplication) - NSMenuItem(1) - NSMenu: "
官方文档说可以在Python代码中使用自定义 block ,但需要创建元数据。我还没有找到这样的例子。 我的问题是如何创建、使用和分发自定义 block 的元数据。 示例 @interface Som
我正在尝试为 NSWebView 实现一个委托(delegate),但是当我运行它时,我得到了这个错误: TypeError: Error when calling the metaclass bas
当我在 pyObjC 代码中调用 setDelegate_ 时,我收到 AttributeError: 'tuple' object has no attribute 'setDelegate_'。
我正在尝试根据 the KVC guide 在 Python 中为我的模型类实现索引访问器方法。 .出于性能原因,我想使用可选的范围方法一次加载多个对象。该方法采用指向 C 数组缓冲区的指针,我的方法
在 OSX Maverick 上,我有这个基于 PyObjC(python3.3) 的简单 APP test.py class MyDelegate(NSObject): def applicatio
我正在学习如何使用 pyobjc 进行一些基本原型(prototype)制作。现在我有一个主 UI 设置和一个运行主应用程序的 python 脚本。唯一的问题是当脚本运行时,脚本在主线程上运行从而阻塞
如何使用 PyObjC 获取全局滚动事件?可以通过 NSEvent 调用来完成吗? 示例代码会很棒... 最佳答案 您的 NSEvent 走在正确的轨道上!只要您不想修改事件,而只是观察它,就像调用
我正在尝试在 Cocoa PyObjc 项目中使用来自 BWToolkit 的 Brandon Walkin 的 BWSplitView。当我运行该项目时,我收到以下错误消息: NSInvalidUn
我正处于开发跨平台(Mac 和 Windows)应用程序的规划阶段。性能不是问题,Python 非常适合问题领域。我是一名具有 pyojc 经验的 Cocoa 开发人员。 Cocotron 看起来很吸
我想为我正在设计的应用程序使用 NSOpenPanel。这是我到目前为止所拥有的: @objc.IBAction def ShowOpenPanel_(self, sender): self.
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题吗? 更新问题,以便 editing this post 提供事实和引用来回答它. 关闭 9 年前。 Improve
我将在 Mac App Store 中销售一个使用该框架的程序。我想确保它能得到 Apple 的批准。 最佳答案 是的。 $ /usr/bin/python2.6 Python 2.6.1 (r261
我是一名优秀的程序员,十分优秀!