切换输入法导致的程序崩溃问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了切换输入法导致的程序崩溃问题相关的知识,希望对你有一定的参考价值。

有时候Alt+Tab快速切换到一个窗口,比如IE某个网页窗口,或某个游戏窗口,或提取了QQ消息,然后我Ctrl+空格快速切换输入法,然后一输入拼音打空格,切换到的那个程序就崩溃,就是BIU的一下消失了。
尝试过的输入法有:智能ABC,紫光,搜狗,都出现过这种情况。
貌似操作比较慢的时候很少出现,系统应该是完好无损的,也很少安装垃圾插件,360安全卫士评满分的,卡巴没任何报告。
我表达能力比较差,不知道各位大大看懂没,我想知道怎么杜绝这种现象的发生,重做系统或换输入法之类的回答不要了,先谢谢了~

一.解决无法使用ctrl+shift以及ctrl+space切换输入法的问题。

首先任务栏上的输入法图标上点右键选择设置。

然后选择键设置,第一个“在不同的输入语言之间切换”先勾选“切换输入语言”下面选择左手ALT。取消右边“切换键盘布局”前的勾。

然后进入“中文(简体)输入法 - 输入法/非输入法切换”,取消“启用按键顺序”前的勾。一路都确定后推出设置。

再次进入设置,进入“在不同的输入语言之间切换”,把右边那个打上勾。确定后退出。

二.另外一种方法

1.控制面板-区域和语言选项-语言(标签)-详细信息-设置(标签)-键设置。

2.要关闭Caps lock键选中。

3.在不同的输入语言之间切换(这里可以点击进入)----左边Alt+Shift

4.点击进入后,左边的选左手ALT(A) 右边的选CTRL(T)

三.问题原因

有时候也可能是输入法之间或和其他软件之间出现热键冲突了,如果你最近安装过一些不是大众化的软件,那么开启后检查是否有软件的热键快捷组合与输入法的起冲突了(比如有些人把输入法切换设置为CTRL+空格,但装了MSN之后,在使用MSN时想切换输入法按下CTRL+空格系统会默认锁定MSN,因为MSN把CTRL+空格设置为自己的锁定热键,谁叫它是微软自己的软件呢)
如果在找不出其他软件热键冲突的情况下,建议删除所有输入法后重新启动电脑,再在控制面板-日期、时间、语言和区域设置-区域和语言选项-语言-详细信息-添加你需要的输入法(建议先加入一种汉字输入法)试试
参考技术A 把扣扣退了重新登录就好了追问

不挖坟就更好了

创建 NSError * 导致应用程序崩溃

【中文标题】创建 NSError * 导致应用程序崩溃【英文标题】:Creating NSError * results in application crash 【发布时间】:2014-11-25 21:55:21 【问题描述】:

我有以下情况:

我的域类得到一些输入来验证它,如果验证通过,它会继续保存数据。 当控制流到达 if 语句时,应用程序崩溃

- (BOOL)createGmailAccountWithName:(NSString *)name
                                 email:(NSString *)email
                           andPassword:(NSString *)password
                                 error: (NSError **) error 
  if (!name || name.length == 0) 
    *error = [self createError:@"name"];
    return NO;
  

  if (!email || email.length == 0) 
    *error = [self createError:@"email"];
    return NO;
  

  if (!password || password.length == 0) 
    *error = [self createError:@"password"];
    return NO;
  

  //..



-(NSError *) createError: (NSString *) field 

  NSString *errorMessage = [NSString stringWithFormat:@"Property %@ is required", field];

  NSDictionary *userInfo = @
    NSLocalizedFailureReasonErrorKey: NSLocalizedString(errorMessage, nil)
  ;

  NSError *error = [NSError errorWithDomain:ACCOUNT_STORE_ERROR_DOMAIN
  code:-1
  userInfo:userInfo];

  return error;

当我注释掉所有发生验证的行时,应用程序不会崩溃。 我不知道为什么会这样。谁能指出我正确的方向?

【问题讨论】:

您确定调用 createGmail 方法时带有错误对象吗?如果用 NULL 调用它,你会崩溃。您应该在取消引用之前检查该错误!= NULL。 它们不是用错误对象调用的。其实我只是想传入一个空指针,当验证失败时,它指向一个错误对象 好的,看看我发布的答案是否解决了这个问题。 【参考方案1】:

如果你有这个方法:

- (BOOL)createGmailAccountWithName:(NSString *)name
                             email:(NSString *)email
                       andPassword:(NSString *)password
                             error: (NSError **) error

人们可能会这样称呼它:

NSError *error;
[accountCreator createGmailAccountWithName:@"Ben" 
                                     email:@"foo@example.com" 
                               andPassword:@"pwd"
                                     error:&error];
if (error)

    NSLog(@"Hey I got an error: %@", error);

或者像这样:

[accountCreator createGmailAccountWithName:@"Ben"
                                     email:@"foo@example.com"
                               andPassword:@"pwd"
                                     error:NULL];
// I couldn't care less about an error

在第二种情况下,您的代码将尝试取消引用**error*error 不是有效指针,会导致崩溃。

【讨论】:

需要注意的是Cocoa约定是使用直接返回值——而不是if(error)——来判断是否传回了一个有效的错误对象。 @JoshCaswell 同意,尽管您会看到即使在 Cocoa 本身中也违反了约定。

以上是关于切换输入法导致的程序崩溃问题的主要内容,如果未能解决你的问题,请参考以下文章

Scanf 导致 C 程序崩溃

搜狗输入法导致程序崩溃怎么办

撇号导致 Node SQL 应用程序崩溃

UIView removeFromSuperview 导致应用程序崩溃

在页面之间切换会导致 Windows 10 移动版崩溃

更新 appcelerator 导致 android 应用程序崩溃