gpt4 book ai didi

iphone - 键盘触发通知以及默认通知

转载 作者:行者123 更新时间:2023-12-03 21:18:42 26 4
gpt4 key购买 nike

我的 ViewController 中有这段代码:

- (void) viewWillAppear :(BOOL)animated {
// register for keyboard notifications
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification object:self.view.window];

// register for defaults change notification
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(defaultsChanged:)
name:NSUserDefaultsDidChangeNotification object:nil];
}

-(void) viewWillDisappear :(BOOL)animated {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

问题是当键盘出现时,defaultsChanged 方法也会被触发。

当键盘出现时,这是调用顺序(从日志中摘录):

start defaultsChanged 
end defaultsChanged
start textFieldDidBeginEdit
end textFieldDidBeginEdit
start keyboardWasShown
end keyboardWasShown

我不知道会发生什么。大家有什么想法吗?

最佳答案

也许默认值确实因为显示键盘的副作用而发生了变化?为什么不打印之前和之后的默认值,看看是否有任何变化?下面是一些使用 NSLog 打印 NSUserDefaults 的代码:

NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
NSDictionary* defaultsDict = [defaults dictionaryRepresentation];
NSLog(@"defaults = %@", defaultsDict);

关于iphone - 键盘触发通知以及默认通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com