2010-04-13 68 views
0

我有一个可以手动编辑或通过另一个控件设置的文本框。 (这是一个页码,所以你可以通过输入16来跳转到第16页,或者你可以使用next/prev按钮来上下翻页)我将文本字段的值绑定到一个int页面变量。NSTextField如何知道它的值已更改?

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

但是,在某种程度上,当我上下翻页时,文本框似乎并不知道它的值已更改,因为如果我键入1,它不会执行任何操作。它不会调用绑定的set-method或任何东西。看起来textfield在想:“我已经是1了,所以我不需要做任何事情。”即使它是5,因为我接下来打了4次。如果我输入1以外的数字,它会到达那里。如果我那么键入1,它会转到第1页,因为现在它认为它在另一页上。

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

这似乎是一个合理的解释吗?无论哪种方式,对于造成它的原因有什么想法?

感谢

回答

0

解决方案:为了使文本框正常的行为,我需要通过绑定的实例变量做的一切。

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

相关问题