3

テキストを入力できるカスタムを作成し、UITextViewプログラムでテキストのように機能するものを追加UILabelsしたいと思います(カーソルが近くに来たら、[バックスペース]ボタンで削除する必要があります)。

これUITextViewは拡張可能である必要があり、ラベルの幅を変えることができます。

この種のもの、チュートリアルなどを作成する方法についてのアイデアはありますか?

4

1 に答える 1

4

このコードを使用してテキストフィールドを作成できます。

UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 200, 300, 40)];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.font = [UIFont systemFontOfSize:15];
textField.placeholder = @"enter text";
textField.autocorrectionType = UITextAutocorrectionTypeNo;
textField.keyboardType = UIKeyboardTypeDefault;
textField.returnKeyType = UIReturnKeyDone;
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;    
textField.delegate = self;
[self.view addSubview:textField];
[textField release];

また、ラベルを作成するには、次のコードを使用できます。

CGRect labelFrame = CGRectMake( 10, 40, 100, 30 );
    UILabel* label = [[UILabel alloc] initWithFrame: labelFrame];
    [label setText: @"My Label"];
    [label setTextColor: [UIColor orangeColor]];
    label.backgroundColor =[UIColor clearColor];
    [view addSubview: label];

バックスペーステープでラベルを削除するには、次の方法を使用します。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([string isEqualToString:@""]) {
NSLog(@"backspace button pressed");
[label removeFromSuperview];
}
return YES;
}

バックスペースボタンが押されると、replacementString(string)の値はnullになります。したがって、これを使用してバックスペースボタンの押下を識別できます。

于 2013-02-01T16:23:53.367 に答える