如何在iPhone中限制复制,粘贴UITextField?

时间:2011-11-18 13:29:40

标签: iphone

我想在我的应用程序中限制特定UITextfield的复制或粘贴选项。

3 个答案:

答案 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作为您可以复制的字段。

请参阅此网址以获取更多信息: -

iPhone – Disable the Cut/Copy/Paste Menu on UITextField

UIResponder

iPhone SDK Development

答案 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不可编辑。