所以,这是我以前的问题的后续行动。我遇到了一个奇怪的错误,无法弄清楚什么是错的。从本质上讲,我写了下面的代码,以检测当文本在文本框中输入了,并相应地更改变量:变量神秘地被改变
-(void)controlTextDidChange:(NSNotification *)aNotification
{
NSTextView *fieldEditor = [[aNotification userInfo] objectForKey:@"NSFieldEditor"];
if ([[aNotification object] isEqualTo:[self idField]])
{
[self setIdNumber:[[fieldEditor textStorage] string]];
}
else if ([[aNotification object] isEqualTo:[self chapterField]])
{
[self setChapterNumber:[[fieldEditor textStorage] string]];
}
}
这需要输入的文本,检查该文本框正在编辑,并改变取决于一个变量在哪个盒子上编辑。问题在于,“else if ..”代码块将变量chapterNumber和IdNumber都更改为输入的文本,即使只有用于更改chapterNumber的代码。我只是无法弄清楚什么是错的...
检查您的IBOutlet连接?如图所示,没有任何问题。你在哪里以及如何检查这两个变量的值? – 2011-05-15 06:41:12
IBOutlets似乎连接正确。我在检查变量的值之前和之后立即使用NSLog语句,这是我如何隔离这部分代码的变化。 – Daniel 2011-05-15 22:38:39
所以,我似乎已经找出了这个问题,但我不确定为什么这样工作。基本上,我改变了设置语句,以使用NSString的方法StringWithString ... – Daniel 2011-05-27 05:43:37