真机安装搜狗输入法Assertion failure in -[UICGColor encodeWithCoder:]

最近开发,碰到的问题,用户用的不是iOS自带的系统输入法而是类似搜狗输入法这种三方输入法时,当点击应用内任意输入框时,应用会直接crash掉;具体报错信息如下:

Assertion failure in -[UICGColor encodeWithCoder:]
崩溃信息:
这里写图片描述

大致意思是说”这种情形下只能支持三原色和白色空间形式”;

出现错误原因是在项目中使用了以下代码:

UINavigationBar *bar = [UINavigationBar appearance];
    [bar setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:20], NSForegroundColorAttributeName:[UIColor redColor]}];
//    [bar setBackgroundImage:[UIImage imageNamed:@"topbg"] forBarMetrics:UIBarMetricsDefault];
    bar.translucent = NO;

    bar.barTintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"topbg"]];

解决方案:
将设置UINavigationBar的barTintColor颜色的代码写到每个控制器中就可以解决问题。

鉴于iOS系统一般都是系统键盘用的多,可能你会忽视三方键盘这类问题,但是由于苹果公司在系统键盘设计时对中国用户的输入习惯关心的极少,所以系统键盘有时可能无法满足许多用户的需求,因此,类似qq,百度,搜狗的输入法应用的出现迎合了用户的定制输入需求,并且覆盖面也越来越广,所以在iOS开发中对三方输入法的考虑是非常必要的.

要知道之前iOS对这类三方输入法是拒绝的,鉴于其”安全”(封闭)的系统设计,三方输入法也是由于用户的需求才得以出现在iOS的应用中,因此可见被需求是多么重要的事情。

特在此记录一下,方便在以后开发中不会出现同样的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值