如何在首次启动应用时使文本字段不可编辑

时间:2012-05-02 06:06:00

标签: iphone uitextfield

我想在应用程序第一次启动时使textfield不可编辑。 我通过点击它来获得UIBarbutton项目,它将使文本域可编辑。 我正在尝试下面的代码,但没有工作。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if(edit == NO){
   textField.enabled = NO;
}
    if(edit == YES){
    textField.enabled = NO;
  }
 return YES;}

8 个答案:

答案 0 :(得分:2)

您应该使用此方法

-(Void)viewwillappers
 {
   [textfield setEnable:NO];
 }

单击条形按钮后,在按钮单击方法中将其设置为“是”。

答案 1 :(得分:2)

txtfld.userInteractionEnabled = NO;
// perform changes and enable afterwards
txtfld.userInteractionEnabled = YES;

答案 2 :(得分:2)

试试这个

-(Void)viewwillapper

{

[textfield setuserintractionEnable:yes];

}

答案 3 :(得分:2)

您可以使用- (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 Class Reference

答案 4 :(得分:1)

- (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;
}

将其用于动态文本字段。

答案 5 :(得分:1)

此外,如果您正在使用Storyboard,则只需取消选中TextField的“enabled”复选框即可。应该做的伎俩。

答案 6 :(得分:0)

简单。

在XIB中,对于textrField的属性,取消选中“启用用户交互”

。现在Bar按钮的click事件使用:

   [textfield setEnable:NO];

作用:

再次加载此视图时。首先,textField将被禁用。

所以它会按你的意愿去做。

答案 7 :(得分:0)

- (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)