zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    LiveBinding应用 dataBind 数据绑定
    判断当前运行的平台
    客户端如何连接 DataSnap Server 调用服务的方法
    创建DataSnap Server
    FireDACQuery FDQuery New
    BDE 退出历史 迁移至FireDAC
    窗口叉叉变灰
    c++builder XE6 Remote Debuger 远程调试
    IP Editor IP控件
    C++访问mysql数据库
  • 原文地址:https://www.cnblogs.com/jauntlin/p/2079191.html
Copyright © 2011-2022 走看看