わかりましたので、Objective-C: 複数の引数を指定してセレクターを呼び出すことはできますが、これをaddTarget:action:forControlEvents:
for aで行うにはどうすればよいUIButton
ですか? 持ってwithObject:
いないものはないと思います... どうすればいいですか?
質問する
225 次
2 に答える
1
複数のarugmentを渡す場合は、 arugmentUIButton
を渡す必要がありますDictionary
それを処理する2つの方法があります:
- インスタンス変数を使用して、使用する値を保持できます。
例えば :
- (void)buttonPressed:(id)sender
{
NSMutableDictionary *argDictionary = _ivar;
}
2.カテゴリを使用してプロパティを偽造することができます。
カテゴリ内のプロパティを偽造する方法については、次を参照してください:http: //oleb.net/blog/2011/05/faking-ivars-in-objc-categories-with-associative-references/
そして、あなたは使用することができます:
- (void)buttonPressed:(UIButton *)sender
{
// use sender.argDictionary to get your fake property
}
あなたが前に私の答えを見ることができるより多くの情報
于 2013-03-14T05:25:45.537 に答える
0
1 つの可能性は、渡す必要があるすべてのプロパティを含むカスタム UIButton 拡張インターフェイスを作成し、ボタンの作成時にボタンのそのプロパティを設定し、アクションが呼び出された後にそれにアクセスすることです。例えば:
@interface UIButton (additions)
@property NSString * customPropertyString;
@end
次に、ターゲットとセレクターを通常の方法で追加します。
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
そして最後に、ハンドラー メソッドの実装:
- (void)buttonPressed:(id)sender
{
UIButton * senderButton = (UIButton *)sender;
NSLog(@"%@", senderButton.customPropertyString);
}
于 2013-03-14T01:56:59.287 に答える