• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > cruntimelibraryiOS如何使用runtime对富文本进行国际化

cruntimelibraryiOS如何使用runtime对富文本进行国际化

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了runtime error,runtime,runtimeexception,directx runtime,adobe air runtime等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:c runtime library iOS如何使用runtime对富文本进行国际化
描述:

使用runtime对程序进行国际化之后发现之前的富文本没有更改,后来单独对富文本重写方法,但是进行国际化之后原本的富文本字符串就变回了普通的字符串,下面是我偷换方法的代码

SEL selA1 = @selector(changeTitle:);
Method methodA1 = class_getInstanceMethod(self, selA1);
Method methodB1 = class_getInstanceMethod(self, @selector(setAttributedText:));
method_exchangeImplementations(methodA1, methodB1);
    
- (void)changeTitle:(NSAttributedString *)title{
    NSString *anotherString=[title string];
    NSString *str = NSLocalizedStringFromTable(anotherString, @"File", nil);
    NSMutableAttributedString *attributedString=[[NSMutableAttributedString alloc] initWithString:str attributes:nil];
    // [attributedString setAttributes:@{NSForegroundColorAttributeName:[NSColor redColor]} range:NSMakeRange(0, 5)];
    [self changeTitle:attributedString];
}

当前类是UILabel类,我偷换的是setAttributedText:方法.还有一个问题就是即时我对富文本本地化成功了,但是富文本的格式也会变化,range会改变,请问如何解决此问题


解决方案1:

= = 个人是不建议这么做的。runtime 这个东西使用一定要有节制,感觉用来做本地化可以说得上是滥用了。

如果要用的话,建议也只是在原方法的基础上稍作修改,最后还是调一下原方法。而不是把整个方法的含义都改了。像你的代码里, NSString *anotherString=[title string];这一行就失去了 attributes,变成普通 string 了。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何通过runtime修改系统类的一个property属性的初始值?
  • cruntimelibraryiOS如何使用runtime对富文本进行国际化

相关文章

  • 2017-06-05 显示web页面
  • 2017-06-05 ipad上的safari在网站页面顶部时,依旧可以下拉,怎样阻止这个行为?
  • 2017-06-05 iphone在drawRect中使用UIGraphicsGetCurrentContext画矩形,边框外有1像素的多余?
  • 2017-06-05 UIView围绕中心点旋转90后,它的frame是多少?
  • 2017-06-05 SDWebImage展示方式求解?
  • 2017-06-05 打包证书问题:Nomatchingcodesigningidentityfound:
  • 2017-06-05 能否实现NSMutableSet或者NSHashTable进行自定义对象的不重复读取、写入
  • 2017-06-05 (swift)关于Masonry为什么不会造成循环引用的问题
  • 2017-06-05 js获取圆坐标iOSUITextView获取某一行的文本
  • 2017-06-05 为什么当CoreAnimation完成时,layer又会恢复到原先的状态?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 怎样让xcode73在ios10上主动提示是否允许应用访问数据?
    • iOS基础控件关于ios的表示图问题,UITableView
    • OC中Http是不是基于socket的?
    • (swift)函数的返回类型"Int->Int"是什么意思?
    • sc.12530怎么用flatlist替换scrollview?
    • ios10為什麼有些文字會跑不出?但其他正常?
    • 源码分享每日分享iOS源码2016-08-03
    • 统计AVAudioPlayer播放时长
    • 往字典里赋值有时候不成功的原因???
    • iOS远程推送ios推送服务平台哪个好点?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有