2017-07-11 9 views
1

NSTextFieldからアクションを受け取る際に問題が発生しました。私のアプリでは、インターフェイスビルダ経由でいくつかのNSTextFieldが作成されていますが、他はプログラムで作成されています。プログラムでNSTextFieldアクションを設定しました

デフォルトでは、IBテキストフィールドは終了編集時にアクションを送信します。しかし、init(frame:)イニシャライザを使用してNSTextFieldを作成すると、入力時にのみアクションが送信されます。

controlTextDidEndEditing関数をサブクラス化して上書きしてそこにアクションを送信することで、この問題を解決できることが分かりましたが、super.controlTextDidEndEditingと呼ぶと、アクションも送信されます。だから、アクションは2回送信されます...私は、実際には、コードを使って作成したテキストフィールドに、「最後に編集しました」というオプションを使用したいだけです。

このインタフェースビルダーの設定をコードで変更する方法はありませんか?

enter image description here

答えて

1

あなたはコードでそれを設定することができます。実際には、テキストフィールドのセルのプロパティです。

// Same as IB's “Sent On End Editing”. 
myTextField.cell?.sendsActionOnEndEditing = true 

// Same as IB's “Send on Enter Only”. 
myTextField.cell?.sendsActionOnEndEditing = false 
+0

NSTextFieldではなくセルの一部であることに気付きませんでした。ありがとう! – JoeBayLD

関連する問題