2

我想在应用程序首次启动时使文本字段不可编辑。而且我通过点击它有一个 UIBarbutton 项目,它将使文本字段可编辑。我正在尝试以下代码但不工作。

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

8 回答 8

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 类参考

于 2012-07-05T18:45:51.040 回答
2

你应该使用这个方法

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

单击栏按钮后,在 Button Click 方法中将其设置为 yes。

于 2012-05-02T06:09:52.197 回答
2
txtfld.userInteractionEnabled = NO;
// perform changes and enable afterwards
txtfld.userInteractionEnabled = YES;
于 2012-05-02T07:14:25.130 回答
2

尝试这个

-(Void)viewwillapper

{

[textfield setuserintractionEnable:yes];

}
于 2012-05-02T07:16:58.470 回答
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;
}

将此用于动态文本字段。

于 2012-05-02T07:14:52.043 回答
1

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

于 2016-03-29T18:33:20.713 回答
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)

于 2012-05-02T07:07:36.567 回答
0

简单的。

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

.现在在 Bar 按钮的点击事件上使用这个:

   [textfield setEnable:NO];

优点:

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

所以它会如你所愿。

于 2012-05-02T06:48:20.610 回答