如何在UITextView中添加自定义按钮而不是复制按钮?

时间:2013-04-03 06:51:59

标签: iphone ios uitextview

我正在创建一个应用。在那个应用程序中,我有一小段文本生成的短语。现在,当用户触摸该文本时,特定的文本块将突出显示,它将在文本顶部显示自定义按钮而不是复制。那我怎么能这样做呢?

这是我尝试过的。我已将mu文本放在textview中并使textview可编辑为no,因此键盘将不会显示,我可以选择文本。如果您有任何其他更好的方法来实现这一点,请建议。

UITextView * resionTV = [[UITextView alloc] initWithFrame:CGRectMake(118, 224, 190, 90)];
    resionTV.backgroundColor = [UIColor clearColor];
    resionTV.font = [UIFont fontWithName:@"Arial" size:14];
    resionTV.text = xstr;
    resionTV.editable = NO;
   // resionTV.delegate = self;
    resionTV.autocorrectionType = UITextAutocorrectionTypeNo;
    [self.view addSubview:resionTV];

这个代码我来自苹果开发者网站,但不确定它是我在寻找什么,它也什么都不做,所以也在这里帮助。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *theTouch = [touches anyObject];
    if ([theTouch tapCount] == 2) {
        [self becomeFirstResponder];
        UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Change Color" action:@selector(changeColor:)];
        UIMenuController *menuCont = [UIMenuController sharedMenuController];
        [menuCont setTargetRect:CGRectMake(10, 10, 50, 50) inView:self.view];
        menuCont.arrowDirection = UIMenuControllerArrowLeft;
        menuCont.menuItems = [NSArray arrayWithObject:menuItem];
        [menuCont setMenuVisible:YES animated:YES];
    }
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {}

Screenshot of text highlight

1 个答案:

答案 0 :(得分:1)

我的项目有同样的要求;但是,无法找到,如何在iOS中自定义MenuItem的外观?

AFAIK,您can create the custom menu无法自定义的外观。它看起来像是您添加的自定义项目的原生iOS菜单。

希望这会引导你到处。