我有一个按钮:
@property (weak, nonatomic) IBOutlet UIBarButtonItem *addTaskBtn;
...
// Add new task button action.
- (IBAction)addTaskBtnAction:(id)sender {
}
当我按下按钮时,我想要一个带有文本域附件工具栏的键盘弹出。那个文本域也应该成为第一个引起悖论的反应者......
我发现如果不将键盘作为现有textfiled的第一响应者,就无法显示键盘,但我正在尝试将文本字段创建为键盘的工具栏。
最好的例子就是在这个应用程序中:https://todoist.com/ - 他们设法完成了我想要实现的目标。
有什么想法吗?
答案 0 :(得分:0)
为隐藏文本字段尝试此代码:
将txtHidden设为隐藏,并在按钮单击时将其作为第一响应者
- (IBAction)btnOpenTextfield:(id)sender {
[self.txtHidden becomeFirstResponder];
}
- (void) setupToolbar {
UIToolbar *keyboardToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 42)];
self.txtToolbar = [[UITextField alloc] initWithFrame:CGRectMake(8, 6, 250, 30)];
UIBarButtonItem *textBtn = [[UIBarButtonItem alloc] initWithCustomView:self.txtToolbar ];
UIBarButtonItem *postBtn = [[UIBarButtonItem alloc]initWithTitle:@"Post" style:UIBarButtonItemStyleBordered target:self action:@selector(postComment)];
[keyboardToolBar setItems: [NSArray arrayWithObjects:textBtn,postBtn,nil]];
self.txtHidden.inputAccessoryView = keyboardToolBar;
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (textField == self.txtHidden) {
[self setupToolbar];
}
return true;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField {
[self performSelector:@selector(changeResponder) withObject:nil afterDelay:0.1];
[self changeResponder];
}
- (void) changeResponder {
[self.txtToolbar becomeFirstResponder];
}
这不是最好的方法,但你可以尝试这个,直到你得到任何其他更好的解决方案