小编Mat*_*att的帖子

禁用UITextField键盘快捷方式建议

有一个简单的方法来消除键盘快捷键建议UITextField

可以使用以下方法删除键入更正:[textField setAutocorrectionType:UITextAutocorrectionTypeNo];但这对快捷方式没有影响.

影响sharedMenuController也不会压缩这个.

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    [UIMenuController sharedMenuController].menuVisible = NO;
    return  NO;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

uitextfield uitextview ios ios7

20
推荐指数
2
解决办法
2万
查看次数

KVO在iOS 9.3中被破坏了

这可能是iOS 9.3(发布)中的一个糟糕的错误.

添加单个观察者时,[NSUserDefaults standardUserDefaults]我注意到响应方法-observeValueForKeyPath:ofObject:change:context:被多次调用.

在下面的简单示例中,每次按下一次UIButton时,observeValueForKeyPath会触发两次.在更复杂的例子中,它会发射更多次.它仅出现在iOS 9.3上(包括sim和设备).

这显然会对应用程序造成严重破坏.其他人经历过同样的事情吗?

// ViewController.m (barebones, single view app)

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"viewDidLoad");
    [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:@"SomeKey" options:NSKeyValueObservingOptionNew context:NULL];
}

- (IBAction)buttonPressed:(id)sender {
    NSLog(@"buttonPressed");
    [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"SomeKey"];
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context {
    NSLog(@"observeValueForKeyPath: %@", keyPath);
} 
Run Code Online (Sandbox Code Playgroud)

objective-c key-value-observing ios ios9.3

7
推荐指数
1
解决办法
1409
查看次数