Как NSTextField узнает, что его значение изменилось? - PullRequest
0 голосов
/ 14 апреля 2010

У меня есть текстовое поле, которое можно отредактировать вручную или установить с помощью другого элемента управления. (Это номер страницы, поэтому вы можете перейти на страницу 16, набрав 16, или вы можете пролистывать страницы вверх и вниз с помощью кнопок «вперед / назад»). У меня есть значение текстового поля, связанное с переменной страницы int.

Кажется, он работает правильно, когда вы набираете номер страницы, он скачет, когда вы перемещаетесь вверх и вниз, номер страницы в текстовом поле изменяется соответствующим образом.

Однако на каком-то уровне, когда я перелистываю страницу вверх и вниз, текстовое поле, похоже, не знает, что его значение изменилось, потому что, если я наберу 1, оно ничего не сделает. Он не вызывает связанный метод set или что-то еще. Похоже, что текстовое поле думает: «Я уже 1, поэтому мне не нужно ничего делать». Хотя это было 5, потому что я ударил следующие 4 раза. Если я наберу число, отличное от 1, оно идет туда. Если я ТОЛЬКО тип 1, он переходит на страницу 1, потому что теперь он думает, что находится на этой другой странице.

Проблема, похоже, в том, что я изменяю значение текстового поля программно, но какая-то часть не получает сообщение.

Это кажется разумным объяснением? И в любом случае, есть идеи о том, что это вызывает?

спасибо

1 Ответ

0 голосов
/ 14 апреля 2010

Решение: для того, чтобы текстовое поле работало правильно, мне нужно все сделать через связанную переменную экземпляра.

Проблема заключалась в том, что переменная экземпляра "page" на самом деле не существует, есть метод страницы и метод setPage, но фактическая страница хранится в другом месте. Когда я вызываю метод setPage из следующего / предыдущего кода, кажется, что он работает.

...