所以我有一个UITextView,我用它来允许用户提交一些文本.

我的问题是,我似乎不知道如何允许用户通过点击离开UITextView来"取消".

推荐答案

简化tuzzolotron's answer:

    IBOutlet UITextView *myTextView;

在视图控制器中使用此选项:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [[event allTouches] anyObject];
    if ([myTextView isFirstResponder] && [touch view] != myTextView) {
        [myTextView resignFirstResponder];
    }
    [super touchesBegan:touches withEvent:event];
}

点击文本视图之外的视图控制器视图,第一响应者将退出,关闭键盘.

Objective-c相关问答推荐

Objective C 中的多个委托

MKMapView zoom 到 viewDidLoad 上的用户位置?

使用自动布局以编程方式更改框架

当我从导航控制器推送时如何隐藏导航栏?

以原子方式写入文件与不写入文件之间的区别

Objective-C (cocoa) 等价于python的endswith/beginswith

如何更改 UICollectionView 中的滚动方向?

在我的 iOS Mail 和 Safari 应用程序中支持 Open In... 菜单项

委托如何在 Objective-C 中工作?

distanceFromLocation - 计算两点之间的距离

有没有办法更新单个 UITableViewCell 的高度,而无需重新计算每个单元格的高度?

Core Data使用原始数据类型的标量属性复选框

NS_ASSUME_NONNULL_BEGIN 宏

Objective-C 中的 NSString indexOf

对 NSTimer 目标的弱引用以防止保留循环

IOS 6强制设备方向为横向

[NSMutableArray array] 与 [[NSMutableArray alloc] init] 之间的区别

最大 CGFloat 值是否有常数?

Xcode 的不完整实现警告

UICollectionView:如何检测滚动何时停止