我想在我的应用程序中限制特定UITextfield的复制或粘贴选项。
答案 0 :(得分:5)
在包含UITextField
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
UIMenuController *menuController = [UIMenuController sharedMenuController];
if (menuController) {
[UIMenuController sharedMenuController].menuVisible = NO;
}
return NO;
}
OR
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(paste:) // or @selector(copy:)
return NO;
return [super canPerformAction:action withSender:sender];
}
答案 1 :(得分:2)
创建UITextField的子类。
在该子类中,实现
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { if (sel_isEqual(action, @selector(copy:))) //@selector(paste:) { return NO; } return [super canPerformAction:action withSender:sender]; }
然后将此子类用于您不希望复制的字段,并使用常规UITextField作为您可以复制的字段。
请参阅此网址以获取更多信息: -
答案 2 :(得分:2)
您可以像这样实现:
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
if (action == @selector(paste:)) {
return NO;
}
return [super canPerformAction:action withSender:sender];
}
否则你可以写:
- (BOOL)canBecomeFirstResponder {
return NO;
}
使您的UITextField不可编辑。