【发布时间】:2025-12-22 11:20:15
【问题描述】:
我有一个应用程序,其中有 2 个视图相互叠加,在重叠视图上,有一个 UITextView 和一个 UIButton。
当我单击按钮时,TextView 应该变小
(从CGRectMake(0, 50, self.view.frame.bounds.size.width, 100)
到CGRectMake(0, 50, self.view.frame.bounds.size.width, 50))并且在第二次单击时它应该再次变大。
这是我如何管理它的代码:
-(IBAction)buttonTouched:(id)sender {
if(counter == 1) {
[self.textView removeFromSuperview];
self.textView = nil;
self.textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.bounds.size.width, 50)];
[self.overlayView addSubview:self.textView];
counter = 2;
} else {
[self.textView removeFromSuperview];
self.textView = nil;
self.textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.bounds.size.width, 100)];
[self.overlayView addSubview:self.textView];
counter = 1;
}
}
我的问题是,当我这样做时,如果不设置委托,我将无法像 textViewDidBeginEditing:(UITextView *)textView 那样处理 UITextView 的委托方法。但是,当我在重新创建 TextView 后将委托设置为 self.textView.delegate = self 时,单击它时没有任何反应。没有键盘出现,也没有调用事件。
有什么建议吗?
【问题讨论】:
-
您可以分享任何图片以便我们将问题可视化吗?
-
关于这些观点还有很多,我只是总结了我的问题
标签: ios objective-c cocoa-touch uitextview