2011-06-17 11 views
2

objective-cを学びながら、私はNSTextField,NSButtonおよびNSTableViewという3つのインタフェース要素を持つ基本的なMACショッピングリストアプリを作った。基本的な考え方は、テキストフィールドに何かを入力し、追加ボタンを押す(またはヒットリターン)、それをテーブルビューに追加するというものです。テーブルビューをクリックするまで、すべてが期待どおりに機能します。その時点で、現在のテキストフィールドをテーブルビューに追加します。NSTableViewがクリックされたときに別のアクションを引き起こす

唯一の措置は、テキストフィールドのstringValueNSTableViewのデータソースのNSMutableArrayに追加するaddItemです。ボタンとテキストフィールドによってのみトリガーされるように設定しました。NSTableViewではなく、 NSTextFieldから処理を削除すると、問題は停止します。助言がありますか?

+0

アクションをどのように正確に設定しましたか? Ctrlキーを押しながらテキストフィールドからオブジェクトをドラッグしてaddItemを実装しますか? – puzzle

+0

質問が回答されましたが、参考のために、私はctrlでテキストフィールドをドラッグし、[this]のようにプログラムでドラッグしてみました(http://stackoverflow.com/questions/995758/execute-an-action-when-the- enter-key-is-a-nstextfield/996694#996694)答え。両方とも同じ効果があった。 –

答えて

3

NSTextFieldは、そのアクションを発射両方のユーザーは、それがフォーカスを失ったときキーを入力当たったとき。 NSTableViewをクリックすると、NSTextFieldはフォーカスを失い、そのアクションを呼び出します。

あなただけそれがを入力しにその作用を送信したい場合は、ポップアップボタンのは、あなたが 『のみを入力の上送信済み』に設定することができ、 『アクション』というラベルの付いたタブを属性NSTextFieldでもあります。

+0

ありがとう!それは完璧に働いた。 –