以编程方式编辑NSTextField时的通知

时间:2014-04-13 19:53:38

标签: objective-c notifications nstextfield

我有一个NSTextField来获取路径。用户可以在文本字段中键入路径或拖动文件夹。 (我将NSTextField子类化为启用拖放功能)。 我想在每次编辑文本时做一些事情。我试图在IB中链接一个动作,我从NSTextFieldDelegate

实现了委托方法
-(void)controlTextDidChange:(NSNotification *)obj  

但是我只在用户更改文本时收到通知,而不是以编程方式更改时收到通知。

最后,我尝试重新定义setStringValue

-(void)setStringValue:(NSString *)aString{
    [self textDidChange:[NSNotification notificationWithName:NSControlTextDidChangeNotification object:nil]];
    [super setStringValue:aString];
}

但是我收到了错误

Ignoring exception raised in void run_cocoa_block(void *): *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]

我想这是因为我应该把东西放在对象中:但我不知道是什么

1 个答案:

答案 0 :(得分:0)

来自NSNotification的对象不得为nil。改为引用文本字段。

[NSNotification notificationWithName:NSControlTextDidChangeNotification object:self];