我想在应用程序首次启动时使文本字段不可编辑。而且我通过点击它有一个 UIBarbutton 项目,它将使文本字段可编辑。我正在尝试以下代码但不工作。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if(edit == NO){
textField.enabled = NO;
}
if(edit == YES){
textField.enabled = NO;
}
return YES;}
我想在应用程序首次启动时使文本字段不可编辑。而且我通过点击它有一个 UIBarbutton 项目,它将使文本字段可编辑。我正在尝试以下代码但不工作。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if(edit == NO){
textField.enabled = NO;
}
if(edit == YES){
textField.enabled = NO;
}
return YES;}
您可以- (void)viewWillAppear:(BOOL)animated
为此使用委托,
- (void)viewWillAppear:(BOOL)animated
{
[textfield setEnable:NO];
}
[textfield setEnable:YES];
并在栏按钮的点击方法中写入,
- (IBAction)clicked:(id)sender
{
[textfield setEnable:YES];
}
如果您使用上面的代码,那么如果您导航到另一个视图(详细视图)并返回,那么 textField 也将被禁用。如果您不希望这样,请使用以下代码:
- (void)viewDidLoad
{
[textfield setEnable:NO];
}
有关视图控制器委托的更多信息:UIViewController 类参考
你应该使用这个方法
-(Void)viewwillappers
{
[textfield setEnable:NO];
}
单击栏按钮后,在 Button Click 方法中将其设置为 yes。
txtfld.userInteractionEnabled = NO;
// perform changes and enable afterwards
txtfld.userInteractionEnabled = YES;
尝试这个
-(Void)viewwillapper
{
[textfield setuserintractionEnable:yes];
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleValue1
reuseIdentifier:CellIdentifier]
autorelease];
}
cell.textLabel.text=[Players objectAtIndex:indexPath.row];
playername=[[UITextField alloc]initWithFrame:CGRectMake(10, 3, 280, 30)];
playername.placeholder=@"Player";
playername.delegate=self;
playername.keyboardType=UIKeyboardTypeDefault;
// playername.returnKeyType=UIReturnKeyDone;
[cell.contentView addSubview:playername];
return cell;
}
将此用于动态文本字段。
此外,如果您使用 Storyboard,您只需取消选中 TextField 的“启用”复选框即可。应该做的伎俩。
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MyIdentifier = @"tblCellView";
PlayerDetailsCell *cell = (PlayerDetailsCell *)[tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if(cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"PlayerDetailsCell" owner:self options:nil];
cell = tblCell;
}
return cell;
}
在您的表格视图中使用此代码并调用您的 uitableviewcell 类。就像我在调用(playerdetailscell)
简单的。
在 XIB 中,对于 textrField 的属性,取消选中“启用用户交互”
.现在在 Bar 按钮的点击事件上使用这个:
[textfield setEnable:NO];
优点:
当您再次加载此视图时。首先该 textField 将被禁用。
所以它会如你所愿。