我想使用文本字段关闭键盘
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
,但我需要对文本视图执行相同操作,因此我将使用- (BOOL)textViewShouldReturn:(UITextView *)textView {
。是否可以将它们放在同一个AppDelegate中?
谢谢。
答案 0 :(得分:1)
是的,你可以有两个代表
@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>
协议UITextViewDelegate 没有,就像这样。
- (BOOL)textViewShouldReturn:(UITextView *)textView {
UITextViewDelegate协议,
编辑1 :
按下按钮事件以隐藏键盘。
-(IBAction) yourButtonPressed:(id)sender;{
for(UIView *v in self.view.subviews){
if([v isKindOfClass:[UITextField class]] || [v isKindOfClass:[UITextView class]]){
if([v isFirstResponder]){
[v resignFirstResponder];
break;
}
}
}
}
答案 1 :(得分:0)
只需从viewController订阅委托,并确保将这些对象的委托设置为viewController。
·H
@interface YourViewController : UIViewController <UITextFieldDelegate, UITextViewDelegate>
的.m
someTextField.delegate = self;
someTextView.delegate = self;
从它的声音中你只需要绑定textField和textView的动作。创建一个IBAction并将其与您想要的结合起来。然后你可以从那个IBAction resignFirstResponder。
对textField和textView
使用此操作- (IBAction)lowerTheText:(id)sender
{
[sender resignFirstResponder];
}
答案 2 :(得分:0)
我不完全理解你的问题...... 基本上你会做以下事情:
UITextFieldDelegate
和UITextViewDelegate
viewController 实现该委托的方法,您需要/想要
resignFirstResponder / endEditing textField / textView,其中 你想要吗
答案 3 :(得分:0)
是的,使用UITextView很棘手。正如我在书中所说的那样......
http://www.apeth.com/iOSBook/ch23.html#_uitextview
...在iPad上,不会出现解除键盘的问题,因为用户可以使用键盘右下角的按钮将其解除。所以这只留下了iPhone。您通常会有一个界面,以便有一个完成按钮或类似按钮。例如,看看Notes应用程序如何解决这个问题。
过程本身是一样的:在超级视图上调用endEditing:
,无论谁是第一响应者都将停止作为第一响应者,键盘将退出。
答案 4 :(得分:0)
是的,您可以在同一个应用程序中使用textfield delegate和textview委托。
的TextField:
@interface ViewController : UIViewController<UITextFieldDelegate,UITextViewDelegate>
// This allocates the textfield and sets its frame (or) you can use interfaceBuild
UITextField *textField = [[UITextField alloc] initWithFrame:
CGRectMake(20, 50, 280, 30)];
textField.delegate=self;
// This method enables or disables the processing of return key
-(BOOL) textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder]; // this is event for hide keyboard.
return YES;
}
的TextView:
// init
UITextView *textView = [[UITextView alloc] initWithFrame:
CGRectMake(20, 50, 280, 30)];
- (void)textViewDidChangeSelection:(UITextView *)textView
{
[textField resignFirstResponder]; // this is event for hide keyboard.
}