2

これは私がポップオーバーを設定する方法です

UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Delete Patient"

                                                  action:@selector(customAction:)];



[[UIMenuController sharedMenuController] setMenuItems:@[menuItem]];

次に、必要なメソッドを追加します

- (BOOL)canBecomeFirstResponder {

return YES;

}



- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {



NSLog(@"canPerformAction");

// The selector(s) should match your UIMenuItem selector

if (action == @selector(customAction:)) {

    return YES;

}

return NO;

}



- (void) customAction:(id) sender

{

for (Treatment *t in self.ptToDelete.patientRx) {

    [self.managedObjectContext deleteObject:t];

}



[self.managedObjectContext deleteObject:self.ptToDelete];



NSError *error = nil;

if (![self.managedObjectContext save:&error]) {

    NSLog(@"Error! %@", error);

}

}

これは iOS6 では機能しますが、現在は機能していません。次のメソッドが呼び出されていません。タップ アンド ホールドすると呼び出されるはずです

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
4

1 に答える 1

7

CollectionViewCell クラスに次のものが必要であることがわかりました。ただし、これは ios6 では必要ありませんでした。これで誰かが数時間を節約できることを願っています。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{

    // The selector/s should match your UIMenuItem selector
    if (action == @selector(customAction:)) {
        return YES;
    }
        return NO;
    }

- (void) customAction:(id)sender
{
    // do stuff
}
于 2013-09-14T06:34:17.283 に答える