Если вы создаете новый проект, какао и перетащить NSTextField
из Object Library к контроллеру вида, который является вашим первоначальным контроллером при запуске, и создать одновременно @IBAction
(добавить print(called)
в нем) и @IBOutlet
, и запустить приложение , то вы не видите метод @IBAction
, вызываемый при запуске.Почему @IBAction автоматически вызывается при запуске?
Затем, если вы нажмете возвращение в текстовое поле, вы получите вызванное действие. Однако, и это важно, после того, как вы покинули приложение и снова запустили приложение, вы увидите, что @IBAction
вызывается по некоторым причинам (если вы этого не сделаете, попробуйте его пару раз).
На самом деле я задавался вопросом, почему @IBAction
всегда вызывался при запуске в моем приложении разработки и искал любые методы, вызывающие его во всех моих классах, но позже обнаружил, что эта странная проблема возникает, даже когда я запускаю новый проект и создаю соединение и попытаться запустить и отправить действие несколько раз проб и ошибок.
Я также отмечаю, что я создал пять новых проектов и подтвердил, что это произошло во всех пяти проектах.
Почему это происходит? Кроме того, если это ошибка на стороне Apple, есть ли способ отключить автоматическое выполнение @IBAction
в моем проекте?
Сначала я установил textField.editable = false
и установил его в textField.editable = true
в viewDidAppear:
, но все же активировал действие при запуске. Есть ли способ справиться с проблемой?
Кажется, что если я закрыть окно, нажав на красную иконку и выходе из приложения, а затем запускает его снова изнутри Xcode, то @IBAction
не называется. Это так странно ...
О, это так здорово. Затем процесс восстановления окна выполняется после вызова 'viewDidAppear:', правильно? – Blaszard
Согласно некоторым заявлениям NSLog, это правильно. :) –