3

我正在开发一个消息传递应用程序。当用户在UITextView. 当用户按下“复制”按钮时,它正在复制消息,但弹出窗口一次又一次地显示,并且文本仍然是可选的。

我不知道如何控制这个。我已经粘贴了一些源代码供您参考。

我为UITextView.

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    NSLog(@"Action : %@", NSStringFromSelector(action));
    NSLog(@"Sender : %@", sender);
    if (action == @selector(copy:))
    {
        [self selectAll:self];
        //return [super canPerformAction:action withSender:sender];
        return YES;
    }
    else if (action == @selector(cut:))
    {
        return NO;
    } 
        return NO;
}
4

2 回答 2

1

我已经解决了我的问题。我用下面的代码来解决。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(copy:))
    {
        [self selectAll:self];

        return YES;
    }
    else if (action == @selector(cut:))
    {
        return NO;
    } 
        return NO;
}


- (void)copy:(id)sender 
{
    UIPasteboard *pastBoard = [UIPasteboard generalPasteboard];
    [pastBoard setString:self.text];
    self.selectedTextRange = nil;
    [self resignFirstResponder];
}

感谢Mr.Vimal Venugopalan and Mr.Mrueg. 它对我有用。这将有助于某人。

于 2012-09-14T11:36:35.250 回答
0

如果您使用的是 iOS5

UITextView采用UITextInput具有selectedTextRange属性的协议。将属性设置为 nil:

在最后一个上方添加以下代码return NO

self.selectedTextRange = nil;

希望这可以帮助

于 2012-09-14T11:33:09.350 回答