Re: [請益] textview不能輸入文字

看板MacDev作者 (leepair)時間12年前 (2013/04/29 23:28), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串3/3 (看更多)
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

04/30 00:02, , 1F
self.view addSubview 不能在init做。
04/30 00:02, 1F

04/30 06:19, , 2F
init時可以addSubview,不然繼承UIView的Class要怎麼做
04/30 06:19, 2F

04/30 06:19, , 3F
addSubView的動作?
04/30 06:19, 3F

04/30 10:05, , 4F
都說繼承UIView了,應該不適合這篇吧?
04/30 10:05, 4F

04/30 19:30, , 5F
你在init做 View都還沒形成 怎麼addsubview的上去?
04/30 19:30, 5F

04/30 19:36, , 6F
init -> loadView(沒覆寫調用super開始渲染) >ViewDidLoad
04/30 19:36, 6F
文章代碼(AID): #1HVf60z5 (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1HVf60z5 (MacDev)