gpt4 book ai didi

ios - 键盘在StoryBoard中隐藏UITableView

转载 作者:行者123 更新时间:2023-12-01 19:02:31 24 4
gpt4 key购买 nike

我正在开发一个iPhone应用程序。我的UITableView上有一个简单的ViewController。在UITableView中,我在单元格中添加了UITextField。我的问题是,当我单击特定单元格中的UITextField时,键盘将隐藏整个UITableView。我已经搜索过,但是找不到成功的解决方案。我正在添加UITextField像这样:

UITextField* textField = [[UITextField alloc]initWithFrame:CGRectMake(250, 15, 60, 30)];
textField.delegate = self;
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.backgroundColor = [UIColor clearColor];
textField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
textField.tag =TEXT_VIEW_TAG;
[cell.contentView addSubview:textField];

如果有人知道其解决方案,请告诉我。

最佳答案

实际上,添加UITableViewController可以自己处理。但是,如果确实需要使用UITableView,但仍希望键盘不隐藏UITableView,则在打开键盘时需要向上移动UITableView。为此,您可以更改UITextFieldBeginEditing方法中的y位置,也可以使用UIKeyboard通知。您需要在viewDidLoad方法中添加以下代码行:

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myKeyboardWillHideHandler:)
name:UIKeyboardWillHideNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myKeyboardWillShowHandler:)
name:UIKeyboardWillShowNotification
object:nil];

然后,您可以添加以下方法:
    - (void) myKeyboardWillHideHandler:(NSNotification *)notification {

[UIView animateWithDuration:0.2 animations:^{
YOUR_TBL_VIEW.frame = CGRectMake(YOUR_TBL_VIEW.frame.origin.x, YOUR_TBL_VIEW.frame.origin.y + 80, YOUR_TBL_VIEW.frame.size.width, YOUR_TBL_VIEW.frame.size.height);
}];
}

- (void) myKeyboardWillShowHandler:(NSNotification *)notification {
[UIView animateWithDuration:0.2 animations:^{
YOUR_TBL_VIEW.frame = CGRectMake(YOUR_TBL_VIEW.frame.origin.x, YOUR_TBL_VIEW.frame.origin.y - 80, YOUR_TBL_VIEW.frame.size.width, YOUR_TBL_VIEW.frame.size.height);
}];


}

关于ios - 键盘在StoryBoard中隐藏UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21906081/

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