在PyObjc和C中实现nsext委托方法

2024-05-15 23:25:07 发布

您现在位置:Python中文网/ 问答频道 /正文

在我正在构建的项目中,我希望在将一些文本粘贴到特定的文本字段时调用一个方法。我似乎不能让这个工作起来,但我已经试过了

我实现了一个自定义类(基于NSObject)作为textfield的委托,然后给它提供了方法:textdichange:

class textFieldDelegate(NSObject):
    def textDidChange_(self, notification):
        NSLog("textdidchange")

然后我在interface builder中实例化了这个类的一个对象,并将其设置为NSTextField的委托。然而,这似乎没有任何作用。然而,当我从http://www.programmish.com/?p=30构建示例代码时,一切似乎都工作得很好。如何实现委托代码,使其实际工作?在


Tags: 项目方法代码文本self粘贴defnotification
1条回答
网友
1楼 · 发布于 2024-05-15 23:25:07

这对您无效的原因是textDidChange_不是委托方法。它是NSTextField上发布更改通知的方法。如果您浏览了textDidChange的文档,您将看到它提到了委托方法的实际名称:

This method causes the receiver’s delegate to receive a controlTextDidChange: message. See the NSControl class specification for more information on the text delegate method.

委托方法实际上称为controlTextDidChange_,并在NSTextField超类NSControl上声明。在

将委托方法更改为:

def controlTextDidChange_(self, notification):
    NSLog("textdidchange")

它应该对你有用。在

相关问题 更多 >