gpt4 book ai didi

ios - InputAccessoryView 内容显示在弹出键盘键上

转载 作者:行者123 更新时间:2023-11-29 12:50:37 24 4
gpt4 key购买 nike

自从我升级到 Xcode 5.1 后,我的 inputAccessoryView 出现了问题。

Keyboard key behind InputAccessoryView

如您在附图中所见,按键在 inputAccessoryView 内的工具栏后面弹出。我认为它与新版本的 xcode 有关,因为它与以前版本的 xcode 没问题。

创建和添加附件 View 的代码:

    self.keyboardDoneButtonView = [[UIToolbar alloc] init];
self.keyboardDoneButtonView.barStyle = UIBarStyleBlack;

self.addEmailUITextField = [[UITextField alloc] init];
[self.addEmailUITextField setReturnKeyType:UIReturnKeySend];
[self.addEmailUITextField setBorderStyle:UITextBorderStyleRoundedRect];
[self.addEmailUITextField setAutocorrectionType:UITextAutocorrectionTypeNo];
[self.addEmailUITextField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
[self.addEmailUITextField setKeyboardType:UIKeyboardTypeEmailAddress];
[self.addEmailUITextField setClearButtonMode:UITextFieldViewModeWhileEditing];
[self.addEmailUITextField setKeyboardAppearance:UIKeyboardAppearanceDark];
[self.addEmailUITextField setPlaceholder:NSLocalizedString(@"emailHint", nil)];

self.cancel = [[UIButton alloc] init];
[self.cancel setTitleColor:[UIColor khipuSecondaryColor] forState:UIControlStateNormal];
[self.cancel setTitle:NSLocalizedString(@"cancel", nil) forState:UIControlStateNormal];
[self.cancel addTarget:self action:@selector(hideAddEmailTextField) forControlEvents:UIControlEventTouchUpInside];
[self.cancel sizeToFit];
self.cancel.frame = CGRectMake((self.tableView.frame.size.width - (self.cancel.frame.size.width + 20)), self.cancel.frame.origin.y, self.cancel.frame.size.width, self.cancel.frame.size.height);
self.addEmailUITextField.frame = CGRectMake(5, 7, (self.cancel.frame.origin.x - 10) - 5, 30);
UIBarButtonItem *cancelUIBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.cancel];
UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:self.addEmailUITextField];

[self.keyboardDoneButtonView setItems:[NSArray arrayWithObjects:textFieldItem,cancelUIBarButtonItem, nil]];
[self.keyboardDoneButtonView sizeToFit];
self.hiddenUITextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
self.hiddenUITextField.inputAccessoryView = self.keyboardDoneButtonView;
[self.hiddenUITextField setKeyboardAppearance:UIKeyboardAppearanceDark];
[self.addEmailUITextField setDelegate:self];

这段代码在 xcode 升级之前一直运行良好

任何人都可以阐明这个问题吗?

最佳答案

发现问题!:是一个类别。

我在 UIView 上有一个类别用于在 subview 中搜索。

我有一个名为

的方法
- (BOOL)containsView:(UIView *)aUIView;

这打破了行为。更改了方法的名称,现在可以正常工作了。

我不知道,但也许我只是选择私有(private) API 的签名。

感谢您的意见和想法,它帮助我找到了麻烦的根源。

关于ios - InputAccessoryView 内容显示在弹出键盘键上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22516517/

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