我編程我的iOS應用程序的形式,我UITextField
民事法律行爲奇怪:的UITextField的.text屬性總是返回一個空字符串
當窗體處於更新狀態(字段已經),我可以編輯和使用.text
屬性獲取新的輸入文本(由用戶鍵入)。但是當表單處於插入模式時,UITextField
s最初是空的,我無法獲得用戶使用.text
屬性鍵入的文本,因爲無論用戶輸入什麼內容,它總是返回一個空字符串。 下面是該問題的視頻:https://youtu.be/tPJZ3sC-IFU
{
__weak IBOutlet UITextField *txtLibelle; //linked by ctrl + drag to the storyboard
NSString *libelleTemp;
}
- (void)viewDidLoad {
[super viewDidLoad];
// ...
[txtLibelle addTarget:self
action:@selector(editingChanged:)
forControlEvents:UIControlEventEditingChanged];
// ...
}
-(void) editingChanged:(id)sender {
libelleTemp = txtLibelle.text;
// libelleTemp is set to @"" whatever the user has typed in when I'm in insert mode
}
-(void)initWithLib:(NSString *)lib {
libelleTemp = [NSString stringWithString:lib];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
if (indexPath.section == 0) {
txtLibelle.text = libelleTemp;
}
// ...
return cell;
}
的initWithLib:方法是從以前的視圖控制器這樣調用:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIStoryboard *accueilNavSB = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
FicheAlerteTableViewController *vc = [accueilNavSB instantiateViewControllerWithIdentifier:@"ficheAlerte"];
NSString *libelle = @"";
[vc initWithLib:libelle];
[self.navigationController showViewController:vc sender:self];
}
我已經重新鏈接從故事板的領域上我的課,並且在調試模式下,我的UITextField
不是零。
我的文本框位於靜態的UITableView
中,所以我可以看到更新是否將單元格從屏幕上滾動,然後滾動。
有誰知道爲什麼會發生這種情況,以及如何解決這個問題?
你是什麼意思,你不能通過.text獲取輸入文本? – 2015-04-02 15:04:55
如果插入模式下的文本字段爲空,那麼如何通過.text屬性獲取字符串?無論如何,這是一個空的字符串。 – 2015-04-02 15:07:10
已編輯的問題。 – 2015-04-02 15:16:13