2016-05-20 2 views
0

NSTextFieldに「完全に貼り付ける」前にテキストを設定したいと思います。SwiftのNSTextFieldで貼り付け操作を検出します。

ユーザーがSwiftのNSTextFieldにテキストを書き込むのではなく、テキストを貼り付けるかどうかを検出する方法はありますか?

+1

ここでアイデアです:私はこれをテストしていないと、本当に時間の並べ替えを持っていないので、私は今の答えとして投稿しないんだけど、 Interface Builderを使用してEditメニュー> Pasteボタンをあなた自身の関数にリンクすることができます。これは、ユーザーが物事を貼り付けるときにあなたが物事を行うことができます。 – Arc676

答えて

0

変更のサイズを確認してください。あなたはデリゲートメソッドを実装し、ような何かを行うことができます。

func textDidChange(notification: NSNotification) { 
let textField = notification.object 
let newTextLength = textField.text.characters.count 
... 

になりました(あなたはどこかに保存するだろうと)前のものとテキストの長さを比較することができ、それ以上1つの文字で変えるなら、ユーザーは何かをペーストしています。私はこれが役立つことを願っています

+0

テキストが入力されたかどうか、または貼り付けられているかどうかは検出されません。変更されたかどうかだけが検出されます。 – Zaphod

+0

@Zaphodそれは多くのものに当てはまりませんか?私たちは、何か他のことを暗に意味する何かを観察し、その暗黙の行動が起こったと仮定します。 – Arc676

+0

@Zaphod、この方法で、ユーザーがそれを貼り付けることを検出できます。一度に1文字しか貼り付けない限りおそらく、ペースト:セレクタを取得するために、何らかの方法を使うこともできます。私は思うように振る舞うことをお勧めしません。 –

0

nstextfieldにはコピー&ペースト機能はありません。これらはnstextviewでのみ検出されます。テキストフィールドが編集されると、編集中にfieldeditorというテキストビューが開きます。

ここに私の答えを参照してください:

NSTextField: exposing its Copy and Paste methods

関連する問題