Ios 以编程方式创建的文本字段不会保存文本
情况: My.h文件中声明了我的两个文本字段:Ios 以编程方式创建的文本字段不会保存文本,ios,objective-c,uitextfield,Ios,Objective C,Uitextfield,情况: My.h文件中声明了我的两个文本字段: @interface DetailViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UIAlertViewDelegate, UITextFieldDelegate> { UITextField *countTotalFieldUniversal; UITextField *flavorNameUniversal; } 尝试调试
@interface DetailViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UIAlertViewDelegate, UITextFieldDelegate> {
UITextField *countTotalFieldUniversal;
UITextField *flavorNameUniversal;
}
尝试调试:
当我尝试使用以下代码在setEditing中打印当前文本字段值时:
NSString *flavorText = ((UITextField*)[self.view viewWithTag:1]).text;
NSString *countText = ((UITextField*)[self.view viewWithTag:2]).text;
NSLog(@"newFlavorName: %@", flavorText);
NSLog(@"newCountTotal: %@", countText);
NSString * newFlavorName = flavorNameUniversal.text;
NSString * newCountTotal = countTotalFieldUniversal.text;
NSLog(@"newFlavorName: %@", newFlavorName);
NSLog(@"newCountTotal: %@", newCountTotal);
我只得到未经编辑的原始标签:“味道”和“计数”
当我尝试使用以下代码在setEditing中打印当前文本字段值时:
NSString *flavorText = ((UITextField*)[self.view viewWithTag:1]).text;
NSString *countText = ((UITextField*)[self.view viewWithTag:2]).text;
NSLog(@"newFlavorName: %@", flavorText);
NSLog(@"newCountTotal: %@", countText);
NSString * newFlavorName = flavorNameUniversal.text;
NSString * newCountTotal = countTotalFieldUniversal.text;
NSLog(@"newFlavorName: %@", newFlavorName);
NSLog(@"newCountTotal: %@", newCountTotal);
我得到两个的空值
好像我对文本字段的更改根本没有被跟踪很可能您对文本字段的更改根本没有被跟踪!至少他们正在被跟踪,然后在你得到他们之前被释放 不要每次都实例化一个新的
UITextField
对象。我建议您将UITableViewCell子类化,以处理两个UITextField
的所有权和绘图。为子类提供两个文本字段属性(@property(强,非原子)UITextField*textField1/2
),并确保在init
中实例化它们,或者在setter中使用延迟实例化
使用委派(在UITextFieldDelegate
协议中声明的textfieldDendediting:
方法)从您的UITextField
获取数据到您的viewController
这将起作用并跟踪对文本字段所做的更改。每次在表视图上(重新)加载一行时,您也将创建新的文本字段。或者请求任何特定单元格上的文本字段。您在哪里设置文本字段上的标记?我在中设置标记cellForRowAtIndexPath@Wain-哇,谢谢。我甚至没有注意到。我将initwithframe和这两个文本字段的委托移动到ViewDidLoad。现在它工作得很好。