0

另一位用户向我提供了以下代码,以便在用户键入特定 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 的窍门!谢谢。

4

1 回答 1

2

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

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

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

验证对象可以响应方法:

NSLog(@"方法确实响应:%d", [self respondsToSelector:@selector(aMethod)]);

于 2013-05-08T00:13:21.220 回答