iOS:用户在 TextView 中键入后无法最小化键盘(xcode)

标签 ios objective-c uibarbuttonitem

另一位用户向我提供了以下代码,以便在用户输入特定 TextView 时在键盘上方制作一个迷你工具栏。我所需要的只是一个小的“关闭”按钮,以便在用户完成后最小化键盘,这样他/她就可以继续操作应用程序。

-(void)viewDidLoad
{
[super viewDidLoad]
UIToolbar *inputAccessoryView = [[UIToolbar alloc]init]; // Create one input accessory view, tool bar will be easy for you  
inputAccessoryView.frame = CGRectMake(0,self.view.frame.size.height - 44, self.view.frame.size.width, 44);

// Add required buttons
UIBarButtonItem *fontItem = [[UIBarButtonItem alloc] initWithTitle:@"Font"
                                                             style:UIBarButtonItemStyleBordered
                                                            target:self action:@selector(changeFont:)];
UIBarButtonItem *removeItem = [[UIBarButtonItem alloc] initWithTitle:@"Remove"
                                                               style:UIBarButtonItemStyleBordered
                                                              target:self action:@selector(removeTextView:)];
//Use this to put space in between your toolbox buttons
UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                          target:nil
                                                                          action:nil];
UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithTitle:@"Done"
                                                             style:UIBarButtonItemStyleDone
                                                            target:self action:@selector(dismissKeyBoard:)];

NSArray *items = [NSArray arrayWithObjects:fontItem,removeItem,flexItem,doneItem, nil];
[inputAccessoryView setItems:items animated:YES];

//You should create an outlet for the text view before doing this 
[self.questionsTextView setInputAccessoryView:inputAccessoryView];

但是,只要按下“关闭”按钮,应用程序就会崩溃。我不确定我是否遵循了正确的方向:我应该为 TextView 创建一个导出,所以我将输出输出到 viewController 的头文件并将其命名为 questionsTextView。然后我在我的.m文件中合成了它,并将实例命名为_questionsTextView。

谁能帮我一把?我是 xcode 的新手,正在慢慢掌握 objective-c 的窍门!谢谢。

最佳答案

您提供的错误消息表明您的方法有问题。

@selector(changeFont:)]
@selector(removeTextView:)];
@selector(dismissKeyBoard:)];

仔细检查所有三种方法都将参数作为 : symbol 指定它应该,并检查你的方法拼写。

验证对象可以响应方法:

NSLog(@"Method does respond: %d", [self respondsToSelector:@selector(aMethod)]);

关于iOS:用户在 TextView 中键入后无法最小化键盘(xcode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429991/

相关文章:

IOS如何保留数据?

ios - 在 Swift 中使用 Alamofire 带参数上传图像

ios - 导入和 UIAlertView

iphone - Objective-C 属性引用计数

ios - 使用 UIApplicationShortcutItem 启动

ios - Google+ 登录崩溃

ios - 如何在HeaderDoc中添加多行注释

ios - 以编程方式突出显示 UIBarButtonItem

ios - 将 UIActivityIndi​​catorView 添加到 UINavigationBar 上的 UIBarButtonItem (iOS)

ios - 选择时更改 UIBarButtonItem 颜色