2011-10-29 12 views
-1

カスタムビューでは、「canBecomeFirstResponder」を「 」に設定し、 ' - (BOOL)canPerformAction:(SEL)action withSender:(id)送信者UIMenuControllerはiOS 4には表示されませんが、iOS 5で動作します

私は、ポップアップメニューを表示するには、次のコードを使用します。

[self becomeFirstResponder]; 
UIMenuController *theMenu = [UIMenuController sharedMenuController]; 


if (theMenu.menuItems==nil) 
{ 
    UIMenuItem* item = [[UIMenuItem alloc] initWithTitle:@"Open" action:@selector(openAction:)]; 
    NSArray* array = [NSArray arrayWithObject:item]; 
    theMenu.menuItems = array; 
    [item release]; 
} 

CGRect rect; 
rect = CGRectMake(self.frame.size.width*0.5, self.frame.size.height*0.5, 0, 0); 
[theMenu setTargetRect:rect inView:self]; 
theMenu.arrowDirection = UIMenuControllerArrowDown; 
[theMenu setMenuVisible:YES animated:YES]; 

問題は、これはiOSの5 に正常に動作しますが、iOSの4.3には何も表示されないということです。予想通り

しかしBOTH IOSが上で「UIMenuControllerWillShowMenuNotification」 と「UIMenuControllerDidShowMenuNotification」通知が を受けています。

誰でも正しい方向へ私を指導してください。 ありがとうございます。

答えて

1
if(![self becomeFirstResponder];) 
{ 
    NSLog(@"Couldn't become first responder "); 
    return; 
} 

check becomeFirstResponder first。

+0

http://stackoverflow.com/questions/2487844/simple-way-to-show-the-copy-popup-on-uitableviewcells-like-the-address-book-ap –

関連する問題