3

我想使用类似以下代码的代码来查找已添加到扩展 UIControl 的自定义视图中的 UITextField,然后在它们上调用 resignFirstResponder 以关闭键盘,但 XCode 编译器不允许这样做并给出消息“意外的接口名称 UITextField。预期的表达式。" 在这里实现我想要的目标的最佳方法是什么?

@interface MyCustomView : UIControl
@end

@implementation MyCustomView

   - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
   {
        /* Dismiss the keyboard associated with any UITextFields in this view */
        for (id subview in self.subviews) {
            if ([subview isKindOfClass: UITextField] ||
                [subview isMemberOfClass: UITextField]) {
                [subview resignFirstResponder];
            }
        }
    }

@end
4

3 回答 3

3

您需要执行以下操作来获取 UITextField 类:

if ([subview isKindOfClass:[UITextField class]]
于 2012-12-18T02:37:47.497 回答
1

if ([subview isKindOfClass:[UITextField class])对于UITextField类和它的子类是正确的。

if ([subview class] == [UITextField class])仅适用于UITextField类。

您可以根据需要使用其中任何一种。

于 2012-12-18T02:54:19.987 回答
0

这对您来说可能更容易:

[self.view endEditing:YES];
于 2016-01-21T10:05:22.967 回答