1

の編集を無効にするのに問題がありUITextFieldます。テキストフィールドをコンボボックスとして使用しようとしていますが、コンボボックススタイルを使用すると、テキストが編集可能になります。編集を禁止するように設定userInteractionEnabled = NOすると、テキストフィールドがコンボボックスとして表示されません。この問題に対して何ができますか?

4

5 に答える 5

1

textfieldeditingでアクションシートを表示します。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if ([textField isEqual:myTextField]){
       UIActionSheet *actionsheet = [[UIActionSheet alloc] initWithTitle:@"Please select an option" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:@"Option1", @"Option2", @"Option3", nil];
       [actionsheet showInView:self.view];
       return NO; 
    } 
    return YES;
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

[myTextField setText:[actionSheet buttonTitleAtIndex:buttonIndex]];

 }
于 2012-10-09T14:04:20.283 に答える
0

これを使って:

txtBox.editable = NO;

それよりも、

txtBox.userInteractionEnabled = NO;
于 2012-10-09T07:09:27.470 に答える
0

コンボボックスとしてuitextfieldを使用することは良い解決策ではないと思います。問題は、ユーザーインタラクションを無効にするか、テキストビューを編集不可にすることです。ユーザーのタップをキャッチしてリストをアクティブにするにはどうすればよいですか。

私があなただったら、ボタンをクリックするとポップアップする小さなテーブルビューを参照します。実装は簡単ではありませんが、よりエレガントなソリューションです。

于 2012-10-09T07:11:26.100 に答える
0

このUITextFieldデリゲートを使用します。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;

リターンNOを設定し、コンボボックスを開きます。

于 2012-10-09T07:43:21.653 に答える
0

UITextFieldsの上にボタンなどを配置するのはどうですか。編集可能なテキストフィールドをNOに設定することはお勧めできませんが、UIをだましているだけです。

于 2012-10-09T07:44:31.883 に答える