-1

「。」を印刷しようとしています。「。」と表示されたボタンを押したとき。

基本的には「。」をつかみたい。NSString形式で

だから私がするなら

NSString *dec = [送信者 currentTitle];

実行しようとするとクラッシュします。

4

3 に答える 3

1

Cocoa では、すべてのコントロールは、ターゲット アクション メカニズムを使用して、操作されたという通知を送信します。「ターゲット」は他のオブジェクトであり、「アクション」はそのオブジェクトが応答する任意のセレクターです。ボタンも同じです。

たとえば、次のように定義できます。

-(void)buttonClicked:(id)sender {
  NSLog(@"Button was clicked!");
}

それに応じて呼び出し-setTarget:て、それをボタンのターゲットアクションに接続します。アクションを処理するクラス内からこれを行う場合、-setAction:ターゲットは になります。self

[button setTarget:self];
[button setAction:@selector(buttonClicked:)]

ボタンが押されると、コンソールに NSLog() 出力が表示されます。

NSLog() で何かを出力する代わりにラベルの値を更新するには、おそらくそれを理解できますが、次のようになります。

-(void)buttonClicked:(id)sender {
  [label setText:@"."];
}

このことについて詳しく説明している Apple のドキュメントを読む必要があります。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html#//apple_ref/doc/uid/TP40002974-CH7-SW14

PS: stackoverflow はすべてのプログラミング言語に対応しているため、質問には必ず関連するプログラミング言語のタグを付けてください。

于 2012-05-19T05:49:19.137 に答える
0

これを試して。

 UIButton *resultButton = (UIButton *)sender;
 NSString *dec = resultButton.currentTitle;
于 2012-05-19T05:49:26.920 に答える
0

このようなことを試してください

 NSString *strdec = [sender titleLabel].text;
于 2012-05-19T05:50:30.770 に答える