gpt4 book ai didi

iphone - 在没有 KeyboardWillShowNotification 的情况下获取键盘大小

转载 作者:太空狗 更新时间:2023-10-30 03:23:56 25 4
gpt4 key购买 nike

我想在不使用可用的键盘通知的情况下获取键盘的大小。原因是我在 View 上有多个文本字段,我不需要为它们的所有 调整 View 的大小,正如我在几乎每个示例中看到的那样。我只需要调整一些文本字段/ View 的 View 大小,这些文本字段/ View 在编辑时将位于键盘后面。所以我正在使用 textFieldDidBeginEditingtextFieldDidEndEditing 方法,因为在这里我知道正在编辑的文本字段。另一个问题是,即使我订阅了键盘通知,UIKeyboardWillShowNotification 也会在 textFieldDidBeginEditing 之后触发,所以我无法在第一次激活时获得键盘大小。我假设实际文本字段或 View 可用的键盘通知功能未提供任何信息。

The following code works but I need the keyboard size:

- (void) textFieldDidBeginEditing:(UITextField *) textField {
if ([theControls containsObject: textField]) {
[UIView beginAnimations: @"szar" context: nil];
[UIView setAnimationDuration:0.3];
self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, -216);
[UIView commitAnimations];
}
}

- (void) textFieldDidEndEditing:(UITextField *) textField {
if ([theControls containsObject: textField]) {
[UIView beginAnimations: @"szar" context: nil];
[UIView setAnimationDuration:0.3];
self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, +216);
[UIView commitAnimations];
}
}

最佳答案

我仍然使用通知,但没有使用您指定的通知。也许这会更好用?只是想帮忙,我明白这些事情是多么令人沮丧。

viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification
object:nil];
//For Later Use
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
}

- (void)keyboardWasShown:(NSNotification *)notification {
// Get the size of the keyboard.
CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
}

编辑:这也有助于区分事件文本字段和非事件文本字段

- (void)textFieldDidBeginEditing:(UITextField *)textField {
self.activeTextField = textField;
}


- (void)textFieldDidEndEditing:(UITextField *)textField{
self.activeTextField = nil;
}

关于iphone - 在没有 KeyboardWillShowNotification 的情况下获取键盘大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910085/

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