UITextField 自带UIMenuController
自定义UITextField, 在.m文件中写如下代码:
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
UIMenuController *menuController = [UIMenuController sharedMenuController];
menuController.menuItems = @[
[[UIMenuItem alloc] initWithTitle:@"顶" action:@selector(ding:)],
[[UIMenuItem alloc] initWithTitle:@"回复" action:@selector(reply:)],
[[UIMenuItem alloc] initWithTitle:@"举报" action:@selector(warn:)]
];
if ((action == @selector(copy:) && self.text.length != 0)
|| (action == @selector(cut:) && self.text.length != 0)
|| (action == @selector(select:) && self.text.length != 0)
|| action == @selector(paste:)
|| action == @selector(ding:)
|| action == @selector(reply:)
|| action == @selector(warn:)) return YES;
return NO;
}
#pragma mark - 监听MenuItem的点击事件
//剪切
- (void)cut:(UIMenuController *)menu {
[UIPasteboard generalPasteboard].string = self.text;
self.text = nil;
NSLog(@" ----- %s", __func__);
[self resignFirstResponder];
}
//赋值
- (void)copy:(UIMenuController *)menu {
[UIPasteboard generalPasteboard].string = self.text;
NSLog(@" ----- %s", __func__);
[self resignFirstResponder];
}
//粘贴
- (void)paste:(UIMenuController *)menu {
self.text = [UIPasteboard generalPasteboard].string;
NSLog(@" ----- %s", __func__);
[self resignFirstResponder];
}
//顶
- (void)ding:(UIMenuController *)menu {
NSLog(@" ----- %s", __func__);
[self resignFirstResponder];
}
//警告
- (void)reply:(UIMenuController *)menu {
NSLog(@" ----- %s", __func__);
[self resignFirstResponder];
}
- (void)warn:(UIMenuController *)menu {
NSLog(@" ----- %s", __func__);
[self resignFirstResponder];
}
