可可检测文本已更改

时间:2013-12-19 11:42:57

标签: macos cocoa nstextfield

我刚用Cocoa开始OS X开发,但是我遇到了很多基本问题。

如何在Java中检测从NSTextField更改的文本,如onTextChanged()? 有人说要委托代表,但是我无法理解什么是委托,以及代理什么。

我在Xcode 5.0.2中使用cocoa框架。

谢谢,抱歉我的英语不好:'(

2 个答案:

答案 0 :(得分:1)

在类声明中添加NSTextFieldDelegate协议:

@interface MyView : NSView <NSTextFieldDelegate>

然后在代码集中:

myTextField.delegate = self;

现在,您的文本字段将向委托发送通知,您可以实现所需的任何委托功能(请参阅下面链接中的NSText委托方法实现)

您现在需要的是实施:

- (void)textDidChange:(NSNotification *)aNotification {

   //Do stuff here

}

参考:NSTextField Class

答案 1 :(得分:0)

尽管编写代码,您也可以通过绑定实现相同的功能。只需将textfieldfileowners的代表联系起来即可。如下所示: -

enter image description here

然后实现以下方法。因此,无需在头文件中定义NSTextFieldDelegate protocol,也无需通过代码在实现文件中设置delegate: -

-(void)controlTextDidChange:(NSNotification *)obj
{

}