自定义剪切板,UIMenuController的使用

来源:互联网 发布:ps cc mac怎么安装啊 编辑:程序博客网 时间:2024/06/01 23:09

有的时候我们想要实现复制或剪切或粘贴功能。具体方式有两种,一种就是自己画个框实现界面效果,然后调用系统API把内容放到剪切板上;另一种就是界面也用系统的。本文说的是第二种方式,以为系统的做的已经非常好了。

1.在点击事件中,获得第一响应者,初始化菜单界面

    [selfbecomeFirstResponder];

    [UIMenuControllersharedMenuController].arrowDirection =UIMenuControllerArrowDown;

    [[UIMenuControllersharedMenuController] setTargetRect:self.frameinView:[selfsuperview]];

    [[UIMenuControllersharedMenuController] setMenuVisible:YESanimated: YES];

2.实现以下方法:

- (BOOL)canBecomeFirstResponder

{

    return YES;

}

在这里添加想要实现的功能

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

{

    if (action == @selector(copy:)) {//复制

        return YES;

    }

    if (action == @selector(paste:)) {//粘贴

        return YES;

    }

    

    if (action == @selector(cut:)) {//剪切

        return YES;

    }

    return NO;

}

实现相应的方法

- (void)copy:(id)sender

{

    //复制内容到剪切板

    UIPasteboard *generalPasteBoard = [UIPasteboardgeneralPasteboard];

    [generalPasteBoard setString:self.textField.text];

}

- (void)paste:(id)sender

{

}


- (void)cut:(id)sender

{

}

3.这些文字系统会自动多语言适配,如果你想要自定义文字,可以通过在UIMenuController上添加UIMenuItem实现。就是这么简单,其实如果你想要在一个框上添加不是剪切板的功能也是可以的,读者可以自己尝试。

0 0