iphone - UITextView 在 iPhone 中隐藏键盘

标签 iphone objective-c ios xcode keyboard-events

我想在用户按回车键时隐藏键盘 UITextView iphone 中的对象。然而,神秘的是这不适用于 UITextView但为 UITextField 工作.我无法弄清楚为什么...

这是我做的:

1) 我在 XCode4 中创建了一个基于 View 的应用程序。

2) 在 .xib 中创建 UITextView , UITextFieldUIButton对象

3) 标记为 UITextFieldUITextView在 Outlets 中委托(delegate)文件所有者

4) 添加了 <UITextFieldDelegate> .h 中的@interface UIViewController

5) 添加了 textFieldShouldReturn .m 中的函数

代码如下:

.h文件

@interface keyboardDisappearViewController : UIViewController <UITextFieldDelegate>
{

    UITextView *textBoxLarge;
    UITextField *textBoxLittle;
}
@property (nonatomic, retain) IBOutlet UITextView *textBoxLarge;
@property (nonatomic, retain) IBOutlet UITextField *textBoxLittle;

- (IBAction)doSomething:(id)sender;
@end

.m 文件

- (BOOL) textFieldShouldReturn:(UITextField *)theTextField 
{
    NSLog(@"textFieldShouldReturn Fired :)");
    [textBoxLarge resignFirstResponder];
    [textBoxLittle resignFirstResponder];
    return YES;
}

令人惊讶的是,键盘在 textBoxLittle (UITextField) 的情况下消失了,但在 textBoxLarge(UITextView) 的情况下却没有

作为进一步检查,我制作了调用函数 doSomething 的按钮

- (IBAction)doSomething:(id)sender {
    [textBoxLarge resignFirstResponder];
    [textBoxLittle resignFirstResponder];
}

当我按下按钮时,键盘在两个文本框中都消失了。

让我抓狂的是为什么 textFieldShouldReturn 适用于小文本框,而不适用于大文本框。

请帮忙!

最佳答案

三件事:

让您的 View 实现 UITextViewDelegate。

@interface keyboardDisappearViewController : UIViewController
    <UITextFieldDelegate, UITextViewDelegate>

添加以下方法:

- (BOOL)textView:(UITextView *)textView
        shouldChangeTextInRange:(NSRange)range
        replacementText:(NSString *)text
{
    if ([text isEqualToString:@"\n"])
    {
        [textView resignFirstResponder];
    }
    return YES;
}

在界面构建器中将文件的所有者设置为 UITextView 的委托(delegate)。

(顺便说一句:解决方案是从评论中复制到之前的答案,因为我花了一些时间才提取出来。我认为其他人可以从我的经验中受益。)

关于iphone - UITextView 在 iPhone 中隐藏键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680693/

相关文章:

iphone - 如何在 Xcode 中一次在多个目的地上 'Build & Run'?

iphone - Objective-C:NSMutableString replaceCharactersInRange 引发异常

iphone - 如何在 iPhone 中格式化 SQLite 日期?

ios - 如何将字典作为参数附加到 URL?

iphone - 使用 UIWebView,我可以使用自定义字体吗?

objective-c - 在 UITableView Objective-C 中的每一行附近添加标签颜色

ios - 在从 UIViewController 调用的非保留完成中引用 self 时,weakSelf/strongSelf 舞蹈真的有必要吗?

ios - 使用 Swift 而不是 Objective C 开始 React Native

ios - 类别扩展 iOS 10+ 中的不一致

iphone - Objective C/iPhone 应用程序中的直方图生命周期数据类型