2016-12-12 3 views
0

外部サーバーからの応答を取得した後、プログラムでUITextfieldのテキストを追加しました。しかし、テキストフィールドをクリックするまで、テキストは表示されません。これはコードです:テキストはiOSのテキストフィールドをクリックするまで表示されません。

if let postcodeVal = dictionary["postcode"]{ 

          println("postcode \(postcodeVal)") 

          self.postcode.text = postcodeVal as String 

         } 

このテキストフィールドは編集できません(有効なユーザインタラクションのダニを削除)

それはそれをクリックする前に、すぐに表示されていない、なぜ誰もが、私が理解するのに役立ちますか。?

+0

はあなたがメインスレッドで表示しようとしたがありますか? – PiyushRathi

答えて

1

外部サーバーへのリクエストは、バックグラウンドスレッドで実行されています。ユーザーインターフェイスの変更は、常にメインスレッドで行う必要があります。あなたがそうのようなメインスレッドへのテキストフィールドの更新を派遣する必要があるサーバー要求の完了ハンドラで

... { 
    // completion handler of the server request 

    DispatchQueue.main.async { 
     self.postcode.text = postcodeVal as String 
    } 
} 
+0

古いXcodeバージョンを使用しています。私はdispatch_async(dispatch_get_main_queue(){}を使用しました。 –

関連する問題