在我正在构建的项目中,我希望在将一些文本粘贴到特定文本字段时调用一个方法。我似乎无法让这个工作,但这是我尝试过的
我将自定义类(基于NSObject)作为我的textfield的委托,然后给它方法:textDidChange:
class textFieldDelegate(NSObject):
def textDidChange_(self, notification):
NSLog("textdidchange")
然后我在界面构建器中实例化了该类的对象,并将其设置为NSTextField的委托。然而,这似乎没有做任何事情。但是,当我从http://www.programmish.com/?p=30构建示例代码时,一切似乎都很好。如何实现此委托代码以使其实际有效?
答案 0 :(得分:3)
这不适合您的原因是textDidChange_
不是委托方法。这是发布更改通知的NSTextField
上的一种方法。如果您查看了textDidChange
的文档,您会看到它提到了委托方法的实际名称:
此方法使接收者的委托接收controlTextDidChange:消息。有关文本委托方法的更多信息,请参阅NSControl类规范。
委托方法实际上称为controlTextDidChange_
,并在NSTextField
超类NSControl
上声明。
将您的委托方法更改为:
def controlTextDidChange_(self, notification):
NSLog("textdidchange")
它应该适合你。