1

UIMenuController を使用して textview 内のテキストを切り取ったので、別の場所に貼り付けたいと思います。しかし、UIPasteBoard 文字列が正しい値を取得することはありません。参考までに、カット工程で発生しますが、コピーでは問題ありません。

例:「XYZ」をコピーして貼り付けました。UIPasteBoard文字列には正しい値が含まれており、「XYZ」があります

次に、「ABC」を切り取って貼り付けたいのですが、UIPasteBoard 文字列に間違った値が含まれています。「ABC」ではなく「XYZ」であり、xcode 出力でテキストが表示されますWebcore NSBeep()!

なぜそれが起こるのか理解できません。誰か手がかりを教えてもらえますか?ありがとうございました

アップデート

canPerformAction メソッドを使用するだけです。

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

    return [super canPerformAction:action withSender:sender];
}
4

2 に答える 2

2

これは、単純なテキストで厚紙を設定する方法です。

[[UIPasteboard generalPasteboard] setString:@"XYZ"];

あなた自身を使用してUIMenuController

UIMenuItem * copy = [[UIMenuItem alloc] initWithTitle:@"Copy Text" action:@selector(copyText:)];

UIMenuController * actionMenu = [UIMenuController sharedMenuController];
[actionMenu setMenuItems:[NSArray arrayWithObjects: copy, nil]];
[actionMenu setTargetRect:someButton.frame inView:someButton.superview];
[actionMenu setArrowDirection:UIMenuControllerArrowDefault];
[actionMenu setMenuVisible:YES animated:YES];

-(void)copyText:(id)sender {
    UIButton * button = (UIButton*)sender;
    [[UIPasteboard generalPasteboard] setString:button.titleLabel.text];
}
于 2012-04-25T04:24:20.103 に答える
-1

例:「XYZ」をコピーして貼り付けました。UIPasteBoard文字列には正しい値が含まれており、「XYZ」があります

次に、「ABC」を切り取って貼り付けたいのですが、UIPasteBoard 文字列に間違った値が含まれています。「ABC」ではなく「XYZ」のままで、xcode 出力でWebcore NSBeep()!というテキストが表示されます。

回答: Webcore NSBeep()! 「ABC」はクリップボードにコピーされず、ビープ音でエラーが通知されるためです(IMHOは、どのプラットフォームでもエラーを通知する賢明な方法ではありません。視覚的な表示でした)

注意してください: NSBeep() は、iPhone には存在しない ApplicationKit フレームワークの一部です。

于 2012-06-22T14:52:17.150 に答える