作者leepair (leepair)
看板MacDev
标题Re: [请益] textview不能输入文字
时间Mon Apr 29 23:27:56 2013
P大你好 我已经把用IBOutlet的方式改成frame的方式还是不行...
程式改写成如下:
感谢~
//***从a view controller切换到 postStatus view controller
PostStatusViewController *postStatus = [[PostStatusViewController alloc]
initWithNibName:@"PostStatusViewController" bundle:nil];
[self.navigationController pushViewController:postStatus animated:YES];
//***PostStatusViewController.m
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)
nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
self.textView = [[UITextView alloc] initWithFrame:CGRectMake(10.0f,
10.0f, 300.0f, 200.0f)];
[self.view addSubview: self.textView];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *retwitterBtn = [[UIBarButtonItem alloc]initWithTitle:
@"发布" style:UIBarButtonItemStylePlain target:self action:
@selector(send:)];
self.navigationItem.rightBarButtonItem = retwitterBtn;
[[UIBarButtonItem appearance] setTintColor:[UIColor grayColor]];
}
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}
-(void)viewDidAppear:(BOOL)animated
{
[self.textView becomeFirstResponder];
[super viewWillAppear:animated];
}
- (void)viewDidDisappear:(BOOL)animated
{
[self.textView resignFirstResponder]; //离开时放掉responder
[super viewDidDisappear:animated];
}
- (void)send:(id)sender
{
NSString *content = self.theTextView.text;
if (content != nil && [content length] != 0) {
NSLog(@"%@",self.theTextView.text);
}
}
※ 引述《PurGle (Purple )》之铭言:
: ※ 引述《leepair (leepair)》之铭言:
: : 最近遇到一个很怪的现象,就是在第一次切换到这有一个textview的view controller
: : 可以正常的输入文字,当用navication back回到上一个view controller再切回到这个
: : 有textview的这个view controller的时候就没有辨法再输入任何文字,不知道是那里
: : 写错了@@? 恳请版上的大大解惑一下 程式码如下~
: : //从a view controller切换到 postStatus view controller
: : PostStatusViewController *postStatus = [[PostStatusViewController alloc]
: : initWithNibName:@"PostStatusViewController" bundle:nil];
: : [self.navigationController pushViewController:postStatus animated:YES];
: : //postStatus view controller的内容
: : - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)
: : nibBundleOrNil
: : {
: : self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
: : if (self) {
: : // Custom initialization
: : }
: : return self;
: : }
: : - (void)viewDidLoad
: : {
: : [super viewDidLoad];
: : UIBarButtonItem *retwitterBtn = [[UIBarButtonItem alloc]initWithTitle:
: : @"发布" style:UIBarButtonItemStylePlain target:self action:
: : @selector(send:)];
: : self.navigationItem.rightBarButtonItem = retwitterBtn;
: : [[UIBarButtonItem appearance] setTintColor:[UIColor grayColor]];
: : theTextView = [[[UITextView alloc] init];
: : }
: 你的theTextView 跟 self.theTextView是同一个物件吗?没有给Frame是用IB
: outlet吧。
: : -(void)viewWillAppear:(BOOL)animated
: : {
: : [super viewWillAppear:animated];
: : [self.theTextView becomeFirstResponder];
: 建议写在viewDidAppear,当然只是建议。
: : }
: : -(void)viewWillDisappear:(BOOL)animated
: : {
: : [super viewWillDisappear:animated];
: : }
: - (void)viewDidDisappear:(BOOL)animated
: {
: [self.theTextView resignFirstResponder]; //离开时放掉responder
: [super viewDidDisappear:animated];
: }
: 没测试,你试试看。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.31.33
1F:→ PurGle:self.view addSubview 不能在init做。 04/30 00:02
2F:→ darktt:init时可以addSubview,不然继承UIView的Class要怎麽做 04/30 06:19
3F:→ darktt:addSubView的动作? 04/30 06:19
4F:推 PurGle:都说继承UIView了,应该不适合这篇吧? 04/30 10:05
5F:→ yuanruo:你在init做 View都还没形成 怎麽addsubview的上去? 04/30 19:30
6F:→ yuanruo:init -> loadView(没覆写调用super开始渲染) >ViewDidLoad 04/30 19:36