UITextField 停止响应触摸
UITextField Stops Responding To Touches
我有一个故事板,其中有一个 UIView,里面有两个 UITextField。当我导航回控制器时,UITextFields 不再响应触摸。我正在这样导航到控制器
UIViewController* controller = [self rootNavigationController].storyboard]
instantiateViewControllerWithIdentifier:@"mycontroller"];
出于某种原因,一旦我这样做,他们就会停止响应。
就控制器而言,它只有几个IBOutlets
myController.h
@interface myController : UIViewController
@property (nonatomic,weak) IBOutlet UIView *mainView;
@property (nonatomic,weak) IBOutlet UITextField *field1;
@property (nonatomic,weak) IBOutlet UITextField *field2;
@end
myController.m
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:(BOOL)animated];
[self.field1 becomeFirstResponder];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.field2.layer.borderColor =[[UIColor colorWithRed:4.0/255.0
green:108.0/255.0
blue:187.0/255.0
alpha:1.0] CGColor];
self.field2.layer.borderWidth = 1.0;
self.field1.layer.borderColor =[[UIColor colorWithRed:4.0/255.0
green:108.0/255.0
blue:187.0/255.0
alpha:1.0] CGColor];
self.field1.layer.borderWidth = 1.0;
}
我在故事板上连接了 IBOutlets。
我已经在 mainView 上尝试了 cliptobounds。但是没用。
您使用以下代码执行的操作:
UIViewController* controller = [self rootNavigationController].storyboard]
instantiateViewControllerWithIdentifier:@"mycontroller"];
您正在创建 mycontroller
的新实例。这就是为什么,正如您所说:“一旦我这样做,他们就会停止响应。”
因此,您的问题的解决方案不是创建前一个 viewController
的新实例,而是导航回去。这就是我的意思:
删除这个:
UIViewController* controller = [self rootNavigationController].storyboard]
instantiateViewControllerWithIdentifier:@"mycontroller"];
然后插入以下内容:
[self.navigationController popViewControllerAnimated:YES];
希望对您有所帮助!! :)
我有一个故事板,其中有一个 UIView,里面有两个 UITextField。当我导航回控制器时,UITextFields 不再响应触摸。我正在这样导航到控制器
UIViewController* controller = [self rootNavigationController].storyboard]
instantiateViewControllerWithIdentifier:@"mycontroller"];
出于某种原因,一旦我这样做,他们就会停止响应。
就控制器而言,它只有几个IBOutlets
myController.h
@interface myController : UIViewController
@property (nonatomic,weak) IBOutlet UIView *mainView;
@property (nonatomic,weak) IBOutlet UITextField *field1;
@property (nonatomic,weak) IBOutlet UITextField *field2;
@end
myController.m
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:(BOOL)animated];
[self.field1 becomeFirstResponder];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.field2.layer.borderColor =[[UIColor colorWithRed:4.0/255.0
green:108.0/255.0
blue:187.0/255.0
alpha:1.0] CGColor];
self.field2.layer.borderWidth = 1.0;
self.field1.layer.borderColor =[[UIColor colorWithRed:4.0/255.0
green:108.0/255.0
blue:187.0/255.0
alpha:1.0] CGColor];
self.field1.layer.borderWidth = 1.0;
}
我在故事板上连接了 IBOutlets。
我已经在 mainView 上尝试了 cliptobounds。但是没用。
您使用以下代码执行的操作:
UIViewController* controller = [self rootNavigationController].storyboard]
instantiateViewControllerWithIdentifier:@"mycontroller"];
您正在创建 mycontroller
的新实例。这就是为什么,正如您所说:“一旦我这样做,他们就会停止响应。”
因此,您的问题的解决方案不是创建前一个 viewController
的新实例,而是导航回去。这就是我的意思:
删除这个:
UIViewController* controller = [self rootNavigationController].storyboard]
instantiateViewControllerWithIdentifier:@"mycontroller"];
然后插入以下内容:
[self.navigationController popViewControllerAnimated:YES];
希望对您有所帮助!! :)