ios - Objective C 子类 UITextField 只复制

标签 ios objective-c copy uitextfield inputview

我正在尝试创建一个类,该类创建一个允许用户复制其内容的只读文本字段。这是我的代码:

只复制.h

#import <UIKit/UIKit.h>

@interface CopyOnly : UITextField

@end

只复制.m

#import "CopyOnly.h"

@implementation CopyOnly

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        [self attachTapHandler];
    }
    return self;
}

- (void) attachTapHandler
{
    [self setUserInteractionEnabled:YES];
    UIGestureRecognizer *touchy = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    [self addGestureRecognizer:touchy];
}

- (BOOL) canPerformAction: (SEL) action withSender: (id) sender
{
    return (action == @selector(copy:));
}

- (void) handleTap: (UIGestureRecognizer*) recognizer
{
    [self becomeFirstResponder];
    UIMenuController *menu = [UIMenuController sharedMenuController];
    [menu setTargetRect:self.frame inView:self.superview];
    [menu setMenuVisible:YES animated:YES];
}

- (void)copy:(id)sender
{
    UIPasteboard *board = [UIPasteboard generalPasteboard];
    [board setString:self.text];
    self.highlighted = NO;
    [self resignFirstResponder];
}

- (BOOL) canBecomeFirstResponder
{
    return YES;
}

@end

效果很好,只有键盘出现了。我不希望出现任何键盘。

我尝试将其添加到 initWithFrame 中:

UIView* noKeyboard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
self.inputView = noKeyboard;

这并没有给我预期的结果。有人知道我该怎么做吗?

最佳答案

扩展我的评论。使用 UITextView(不是 UITextField)并将 editable 属性设置为 NO 可以轻松实现这一点。

UITextView* tf = [[UITextView alloc] initWithFrame:CGRectMake(50, 50, 200, 50)];
tf.editable = NO;
tf.text = @"Hey this is a test!";
[self.view addSubview:tf];

enter image description here

关于ios - Objective C 子类 UITextField 只复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23294693/

相关文章:

javascript - 如果 input2 为空,则从 input1 复制值?

ios - 将字节数组转换为 PDF 文件?

ios - 如何在现有 View Controller 之上部分加载新的 View Controller ?

ios - 将局部变量分配给属性时的内存泄漏弧

objective-c - 在 Obj-C 方法声明中不放置任何空格的约定是如何产生的?

maven-2 - maven antrun 将资源复制到基础目标目录

ios - 如何从 REST API search.list 结果中过滤掉 YouTube 的内容屏蔽视频

iphone - 这是使用 UIGestureRecognizer 之一处理手势的安全方法吗?

iOS 分段上传照片

java - 如何修复返回额外的零