私は自分のアプリ用のカスタムキーボードを作って、送りボタンを使って文字を設定したいと思っています。カスタムiPhoneキーボード
私のすべてのボタンに名前を付けます。 * a、* b、* c、* dなどは、送信者を取り、名前をつかむ1つのIBActionを持つように動作します。 * a> a?もしそうなら、これはどのように行われますか?
また、* 0、* 1、* 2ではなく、* 0、* 1、* 2という名前のボタンを使用できますか?
おかげ
私は自分のアプリ用のカスタムキーボードを作って、送りボタンを使って文字を設定したいと思っています。カスタムiPhoneキーボード
私のすべてのボタンに名前を付けます。 * a、* b、* c、* dなどは、送信者を取り、名前をつかむ1つのIBActionを持つように動作します。 * a> a?もしそうなら、これはどのように行われますか?
また、* 0、* 1、* 2ではなく、* 0、* 1、* 2という名前のボタンを使用できますか?
おかげ
いいえ、変数は実際にはそのようには機能しません。オブジェクト自体を指す変数の名前と混同しています。あなたのIBactionがUIButtonオブジェクトを渡されるときに、変数名を渡すのではなく、メソッドはそれを参照する変数をsender
として定義します。変数名はObjective Cの桁で始めることはできません。
このようにボタンを区別する一般的な方法は、タグとブランチを設定することです。また、タイトルにアクセスすることもできます。これは、あなたが何をしているのかによって異なります。
あなたが同じIBActionで複数UIButtonsをポイントし、ボタンのテキストラベルを抽出する意味場合、あなたは、単に送信者のcurrentTitleプロパティを使用することができます。例えば
:
- (IBAction)padButtonClicked:(id)sender {
NSLog(@"Button pressed: %@", [sender currentTitle]);
}
あなたは、ボタンのタグを使用したほうが良いです。
- (IBAction)buttonTapped:(id)sender {
NSLog(@"Button pressed: %i", sender.tag);
switch (sender.tag) {
case 0:
/* Button A Pressed */
break;
case 1:
/* Button B Pressed */
break;
/* and so forth... */
}
}
タグをInterface Builderで、またはプログラムで設定する必要があります。
middaparkaの回答[送信者の現在のタイトル]。だから、タイトルは*ゼロでなければなりません。ありがとう。 – jarryd
@alJaree、アスタリスクで接頭辞を付ける方法では、変数名について話しているようです。これは本当ですか?もしそうなら、 '[sender currentTitle]'はあなたに変数名を与えません。ボタンのテキストが表示されます。 – Jim
はい。私はボタンUIButton * aを作成し、1つのIBActionを使用して送信者にアクセスすることによって、その 'a'と他のすべてのキーの名前を取得したいとします。これは可能ですか? – jarryd