2016-07-19 9 views
1

私はUITextFieldを使用しています。ユーザがテキストフィールドをテーピングしているときに関数をトリガしたいのですが、関数をトリガする前に1/4秒待つ必要があります。Swift - UITextField - ジェスチャ認識ツールの遅延

どうすればいいですか?

+0

機能します\t performSelector( "targetMethod"、withObject:nil、 afterDelay:4.0)メソッド。 – iMuzahid

答えて

0

まず、あなたは、例えばIBActionを作成する必要があります。changeTextField(あなたはスクリーンショットを参照)

screenshot: create an IBAction for Editing changed event

第二には、

@IBAction func changeTextField(sender: AnyObject) { 
    NSObject.cancelPreviousPerformRequestsWithTarget(self, selector: #selector(ViewController.functionWithDelay), object: nil) 
    self.performSelector(#selector(ViewController.functionWithDelay), 
         withObject: nil, 
         afterDelay: 1/4); 
} 

第三に、このコードを追加し、あなたは

func functionWithDelay() { 
    print("running...") 
} 
+0

私が望むようにうまくいかない。 キーボードを押すたびに「functionWithDelay」が呼び出されます。 1/4秒以上タップしていないときにのみ関数を呼び出すようにしたい –

+0

コード更新:1/4秒より前にキーボードを打つと、cancelPreviousPerformRequestsWithTargetの呼び出しを追加しました – David

+0

これは完璧です。 –

関連する問題