2010-04-13 67 views
0

我有一個可以手動編輯或通過另一個控件設置的文本框。 (這是一個頁碼,所以你可以通過輸入16來跳轉到第16頁,或者你可以使用next/prev按鈕來上下翻頁)我將文本字段的值綁定到一個int頁面變量。NSTextField如何知道它的值已更改?

它似乎工作正常,當您鍵入頁碼時,它會跳轉,當您向上和向下翻頁時,文本框中的頁碼會相應更改。

但是,在某種程度上,當我上下翻頁時,文本框似乎並不知道它的值已更改,因爲如果我鍵入1,它不會執行任何操作。它不會調用綁定的set-method或任何東西。看起來textfield在想:「我已經是1了,所以我不需要做任何事情。」即使它是5,因爲我接下來打了4次。如果我輸入1以外的數字,它會到達那裏。如果我那麼鍵入1,它會轉到第1頁,因爲現在它認爲它在另一頁上。

這個問題似乎是我正在以編程方式更改文本字段的值,但有些部分沒有收到消息。

這似乎是一個合理的解釋嗎?無論哪種方式,對於造成它的原因有什麼想法?

感謝

回答

0

解決方案:爲了使文本框正常的行爲,我需要通過綁定的實例變量做的一切。

問題是,「頁面」實例變量實際上並不存在,有一個頁面方法和一個setPage方法,但實際頁面保存在別處。當我確定從下一個/ prev代碼調用setPage方法時,它似乎工作。

相關問題