2017-10-25 9 views
0

チュートリアルの後、私はチュートリアルの次のステップを前もって裁定し、私自身で試してみることにしました。目的は、IBAction関数をタッチイベントに接続して、UITextFieldの編集を開始するとUILabelを更新することです。私は、接続インスペクタの「Editing Changed」オプションに接続することを示唆するチュートリアルより先に飛びましたが、私は知らないうちに「Editing Did Begin」に接続しました。UIControlEventオブジェクトのeditingDidBeginプロパティの「セッション」という用語は基本的にどのような意味ですか?

私はアプリケーションを実行しましたが、私のUILabelは更新されていませんでした。したがって、私はチュートリアルをゆっくりと読んで、代わりに「編集中の変更」タッチイベントを使用する必要があることに気付きました。なぜ私は最初に動作しなかったのか理解したかったので、Appleの参考資料UIControlEventsをチェックした後、「編集セッション」という用語を使用していることに気付きました。誰がセッションが何であるか説明できますか?

うまくいけば、私のプロセスが最初の試行でうまくいかなかった理由を、この方法で理解できます。

enter image description here

class ConversionViewController: UIViewController { 
    @IBOutlet var celsiusLabel: UILabel! 
    @IBAction func fahrenheitFieldEditingChanged(textField: UITextField){ 
     celsiusLabel.text = textField.text 
    } 
} 

「編集セッション」は、ユーザが(テキストフィールドがフォーカスを取得)テキストフィールドとの対話開始したときからの時間にちょうど時間で事前に

答えて

2

をありがとうユーザはテキストフィールドとのやりとりを終了する(テキストフィールドはフォーカスを失う)。

別の言い方をすれば、ユーザーがテキストフィールドをタップすると、キーボードが表示され(通常は)、「編集を開始しました」というイベントが送信され、セッションが開始されます。テキストが変更されると(入力、切り取り、貼り付けなど)、それぞれの変更によって「編集中」イベントが発生します。フォーカスがテキストフィールドを離れると、キーボードは終了し、「編集終了」イベントが送信され、セッションが終了します。

"編集セッション"は単なるハイレベルな概念です。

イベントの送信時にテキストフィールドが変更されていないため、「編集を開始しました」イベントに接続するとコードが機能しませんでした。これは、単にテキストフィールドにフォーカスがあることを伝えるイベントです。それでおしまい。

関連する問題