2011-07-06 11 views
0

シミュレータでは問題なくUIMenucontrollerが表示されますが、iOS 4以降を実行しているデバイスではテストされません。 IBを使用して追加された標準的なUIビューです。uimxtcontroller with uitextview、universal app xcode 4

私はこれらのメソッドをデリゲートであるviewcontrollerに追加しましたが、標準のmenucontroller、select、copyなどが必要なので、必要ではないとは思われません。

あなたはジェスチャー認識を追加、またはtouchesEndedをオーバーライドする必要が助け

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

    NSLog(@"Can perform action called"); 

    BOOL answer = NO; 

    if (action == @selector(copy:)) 
    { 
     answer = YES; 
    } 
    if (action == @selector(cut:)) 
    { 
     answer = YES;  
    } 
    if (action == @selector(paste:)) 
    { 
     answer = YES; 
    } 
    if (action == @selector(select:)) 
    { 
     answer = YES; 
    } 
    if (action == @selector(selectAll:)) 
    { 
     answer = YES; 
    } 

    return answer; 
} 

- (BOOL) canBecomeFirstResponder { 
    NSLog(@"can become first called"); 
    return YES; 
} 

答えて

1

のための感謝:withEvent:メソッド、およびメニューコントローラを表示:

//Assumes you assigned a CGRect for where the menu should appear to theRect 
UIMenuController *mc = [UIMenuController sharedMenuController]; 
[mc setTargetRect:theRect inView:self]; 
[mc setMenuVisible:YES animated:YES]; 

あなたはまた、should override the methods -copy 、 - カット、 - ペーストなど

+0

これは、標準の選択、コピー、貼り付けを取得するためにも行われなければなりませんか?私はそれが非標準メニューのためだと思った。ところで、私はシミュレータではデバイス上では見えません。 – zambono

+0

私は間違っているかもしれません - 私はMacから離れていますが、今では自分のアプリケーションがCore Textを使用しているので、あなたのコードが必要であるかもしれないと思うかもしれません。ドキュメントは、標準のカット/コピー/ペースト方法をオーバーライドすることを強く推奨しているので、問題を解決するかどうかを試すことがあります。 – RyanR

+0

チャンスがあるとき私に教えてください、標準のコピー/貼り付けが常にuitextviewで表示されたという印象を受けましたが、これは私が見ている動作ではありません。 – zambono