11

ボタンをクリックしたときに、ビューベースのテーブルでボタンの行を取得するにはどうすればよいですか? ボタンをクリックしても行は選択されませんが、ボタンのアクションメソッドでsender.superview.superviewをログに記録すると、次のようになることがわかりました: NSTableRowView: 0x1001b3a90 - 行: 2しかし、プログラムでそれを取得する方法がわかりません。NSTableCellView のサブクラスにボタンのアクション メソッドがあります。

4

5 に答える 5

10

-[NSTableView rowForView:]そのドキュメントでこれを言います:

これは通常、NSButton (または NSControl) のアクション メソッドで、アクションを実行する必要がある行 (および列) を見つけるために必要です。

于 2012-04-18T09:59:19.817 に答える
1

ここでは、簡単な例を示します。これで、コンテンツ ビューに UIButton を追加しています。ボタンをクリックすると、メソッドが呼び出され、必要に応じて行番号と呼び出しが取得されます

//Adding a button
    UIButton *btnBuyer=[UIButton buttonWithType:UIButtonTypeCustom];
    btnBuyer.frame=CGRectMake(238, 10, 26, 32);
    btnBuyer.tag=indexPath.row;
    [btnBuyer setImage:[UIImage imageNamed:@"buyIcon.png"] forState:UIControlStateNormal];
    [btnBuyer addTarget:self action:@selector(goBuyTab:)forControlEvents:UIControlEventTouchUpInside];
    [cellNew.contentView addSubview:btnBuyer];

ユーザーがこれをクリックすると、次のメソッドからIDを取得しました

-(void)goBuyTab:(UIButton *)sender{
    NSLog(@"after click buy button function called goBuyTab");
    NSLog(@"sender.tag in goBuyTab : %d",sender.tag);
    int selectedRow=sender.tag;// This is row number
}

これがあなたが要求したものであることを願っています。

于 2012-04-18T10:09:07.300 に答える
-1

osx では、コントローラーのボタン セル アクション メソッドでこれを使用できます。

- (IBAction)yourMethod:(NSButtonCell *)sender {

NSInteger selected = [yourTableView selectedRow];
NSLog(@"sender sends :%ld", selected);
}

コントローラから へのコンセントを設定する必要がありますNSTableView

于 2013-03-06T21:11:10.867 に答える