• UITextView自定文字选择后菜单


    好吧,总算开始开发IOS的APP了。到处搜索,到处搜索,终于有些资料派上用场。不过很遗憾,很多资料是Stackoverflow上面搜到的。这对于英文水的哥们可是大难题,关键都没办法想得出来,怎么搜出资料呢?我也写一些这一段学习的零零碎碎的东西吧,网上一搜就能搜到的哥就不写了,不过高手还是匆笑啊!

    今天给大家说说UITextView的长按或双击后有选择文字,然后会跳出一个菜单,上面有一些选项,如果是只读的默认只有“复制”选项,可编辑的情况下可能会多几个。那么如果自定义这个弹出菜单呢?哥搜索到cocoachina和devdiv上都有人提问,却没有人回答,后来使用UITextView+longpress关键字在stackoverflow上搜到的,先上个截图,再给个解决方案吧!

    界面设计就不说了吧,拖个TextView,不过我这个设为只读的了。实现部分上代码:

    首先在viewDidLoad方法中添加UIMenuItem:

    UIMenuItem *menuItem = [[UIMenuItem alloc]initWithTitle:@"分享到新浪微博" action:@selector(changeColor:)];
    UIMenuController
    *menu = [UIMenuController sharedMenuController];
    [menu setMenuItems:[NSArray arrayWithObject:menuItem]];
    [menuItem release];

    当然上面那个@selector里面的changeColor方法还是自己写吧,也就是说点击了我们自定义的菜单项后会触发的方法。

    然后还得在代码里加上一个方法:

    -(BOOL)canPerformAction:(SEL)action withSender:(id)sender
    {
    if(action == @selector(changeColor:))
    {
    if(textView.selectedRange.length>0)
    return YES;
    }
    return NO;
    }

    OK,搞定啦!!

    哦,忘了,在.h文件中在继承了

    UIViewController之后还要加上<UITextViewDelegate>。希望能帮到大家哦!

    转载请注明来自博客园,作者:jauntlin

  • 相关阅读:
    中国身份证号码验证
    防止盗链下载问题
    Microsoft .NET Pet Shop 4 架构与技术分析
    常用操作封装类
    ASP.NET 2.0页面框架的几处变化
    普通字符串与HTML相互转换的小经验
    HttpWebRequest实现读取天气预报信息
    事务回滚 c# .net代码
    CAJViewer,AdobeReader等阅读器实现金山词霸屏幕取词功能
    01背包问题动态规划详解
  • 原文地址:https://www.cnblogs.com/jauntlin/p/2079191.html
Copyright © 2020-2023  润新知