У меня есть ViewController
с UITextField
(вид сверху) и UITextView
(вид снизу). Я хочу переместить UITextView
в начало просмотра, когда пользователь начнет его редактировать. Когда пользователь начинает редактирование с UITextView
, все в порядке, но когда пользователь сначала хочет отредактировать UITextField
, а затем UITextView
(без скрывающей клавиатуры) его не работает. UITextField
скрыт, но UITextView
не меняет свою рамку. Я пытался использовать UIKeyboardDidShowNotification
, но его вызывали, только когда клавиатура всплывала.Изменение рамки UITextView
Код для воспроизведения проблемы: ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITextViewDelegate>
@property (weak, nonatomic) IBOutlet UITextField *titleTF;
@property (weak, nonatomic) IBOutlet UITextView *bodyTV;
@end
ViewController.m
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
-(void)textViewDidBeginEditing:(UITextView *)textView {
self.titleTF.hidden=YES;
CGRect newFrame=CGRectMake(20, 20, textView.frame.size.width, 100);
textView.frame=newFrame;
}
@end
Запуск приложения и нажмите на UITextView, приложение будет выглядеть следующим образом: http://imageshack.us/photo/my-images/694/32568213.png Пока все нормально (UITextField скрыт, а UITextView перемещен и изменен).
Запустить приложение снова. Сначала нажмите UITextField, а затем нажмите UITextView. Приложение выглядит так: http://imageshack.us/photo/my-images/843/66433184.png UITextField скрыт, но UITextView не изменил свой фрейм.
этот метод огонь, когда вы начинаете ли редактирование? вы пробовали NSLog? –
Да, его работа. Он всегда скрывает titleTF. –
У вас есть только один textView в этом контроллере? –