4

でメニューを作成します。UITableViewCellこれUIMenuControllerには 2 つの項目しかありません。しかし、私がそれを実行すると、このメニューには多くの項目が表示され、ios のデフォルトのメニュー項目のようで、スクリーンショットとして表示されます:

ここに画像の説明を入力

これらのアイテムを削除して、定義したアイテムのみを表示するにはどうすればよいですか? どうも。

ここに私のコードがあります:

- (id)initWithComment:(DSComment *)コメント
{
    self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"comment"];

    UILabel *contentLabel=[[UILabel alloc] initWithFrame:CGRectMake(10, 45, 300, 0)];
    contentLabel.text=comment.message;

    [self.contentView addSubview:contentLabel];
    自分自身を返します。
}


- (BOOL) canBecomeFirstResponder {
    はいを返します。
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)イベント
{
    [自分がFirstResponderになる];
    UIMenuController *menu = [UIMenuController sharedMenuController];
    UIMenuItem *like = [[UIMenuItem alloc] initWithTitle:@"Like" action:@selector(like:)];
    UIMenuItem *reply = [[UIMenuItem alloc] initWithTitle:@"リプレイ" アクション:@selector(reply:)];

    [menu setMenuItems:[NSArray arrayWithObjects:いいね、返信、nil]];

    [メニュー setTargetRect:CGRectMake(0, 0, 0.0f, 0.0f) inView:self];
    [menu setMenuVisible:YES アニメーション:YES];
}
4

1 に答える 1

13

不要なアクションをオーバーライドcanPerformAction:withSender:して返す必要があります。NO

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    if (action == @selector(_myCustomActionSelector:)) return YES;
    return NO;
}
于 2013-04-22T03:01:02.363 に答える