NSTextField如何知道它的值已经改变了?

时间:2010-04-13 20:48:47

标签: objective-c cocoa nstextfield

我有一个文本字段,既可以手动编辑,也可以通过其他控件设置。 (这是一个页码,所以你可以通过键入16来跳转到第16页,或者你可以使用下一个/上一页按钮向上和向下翻页)我将文本字段的值绑定到一个int页面变量。

它似乎工作正常,当您键入页码时,它会跳转,当您向上和向下翻页时,文本框中的页码会相应更改。

但是,在某种程度上,当我向上和向下翻页时,文本框似乎不知道它的值已经改变,因为如果我输入1它就不会做任何事情。它不会调用绑定的set方法或任何东西。看起来文本字段正在思考“我已经是1,所以我不需要做任何事情。”即使它是5,因为我接下来打了4次。如果我输入的数字不是1,它会去那里。如果我那么输入1,它会转到第1页,因为现在它认为它在另一页上。

问题似乎是我正在以编程方式更改文本字段的值,但有些部分没有收到消息。

这看起来像是一个合理的解释吗?无论哪种方式,任何关于是什么导致它的想法?

感谢

1 个答案:

答案 0 :(得分:0)

解决方案:为了使文本字段正常运行,我需要通过绑定的实例变量完成所有操作。

问题是“页面”实例变量实际上并不存在,有一个页面方法和一个setPage方法,但实际的页面保存在别处。当我确保从下一个/ prev代码调用setPage方法时,它似乎有效。