2012-10-21 32 views
1

我有一個運行計算並在編輯已更改時更新標籤的文本框。該文本字段使用textField格式化爲幣種:shouldChangeCharactersInRange:編輯已更改在IOS5中工作,但不在IOS6中工作。 textField:shouldChangeCharactersInRange:

該標籤也用於貨幣格式。

在IOS 5中,標籤會在數字輸入到文本框中時更新。

在IOS 6中,標籤不會更新,直到在不同的文本字段中輸入值。

IOS 6或Xcode 4.5中有任何更改以使編輯已更改或textField:shouldChangeCharactersInRange:工作方式不同嗎?

回答

1

是的我只是注意到了同樣的事情 - 請注意,只有當shouldChangeCharactersInRange返回「NO」時,editingChanged纔會被調用 - 即使如此,我懷疑這是一個錯誤,應該向Apple報告。 EditingChanged事件只是UITexField從UIControl繼承的事件,我不明白爲什麼Apple應該停止工作,即使shouldChangeCharactersInRange返回「NO」,文本字段應該知道是否進行了更改。

我在做的是將我的代碼從editingChanged事件直接移動到shouldChangeCharactersInRange方法中。也就是說,在我返回「否」的地方,我嵌入了我想在editingChanged事件中調用的代碼。應該適用於大多數情況。希望這可以幫助。

+0

感謝您計算這是什麼原因造成的。我希望除了移動代碼之外,我還能找到解決方法。這將是我在這個應用程序上的一大堆工作。 – Gulfer

+0

我還沒有測試過的另一個想法可能是 - 在shouldChangeCharactersInRange方法中發佈一個通知,指出文本字段的文本已更改,然後通過觀察該通知來觸發editingChanged方法。 。 。 –

+0

在shouldChangeCharactersInRange中發佈通知來觸發我的方法工作。再次感謝您的幫助!! – Gulfer

相關問題