2

再投稿の編集... 以前の質問を誤って「コミュニティ wiki」とマークしてしまい、wiki 投稿への回答が評判を生まないことに気づきませんでした。

次のコードを使用して、UITextView を UIAlertView に追加しています。

 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Enter Name Here" message:@"this gets covered!" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:@"OK!", nil];
 UITextField *myTextField = [[UITextField alloc] initWithFrame:CGRectMake(12, 45, 260, 25)];
 CGAffineTransform myTransform = CGAffineTransformMakeTranslation(0, 60);
 [alert setTransform:myTransform];
 [myTextField setBackgroundColor:[UIColor whiteColor]];
 [alert addSubview:myTextField];
 [alert show];
 [alert release];
 [myTextField release];

そのコードを標準アクション メソッドに配置すると、次のようになります。

 - (IBAction)testAlertView:(id)sender {
  ...the above code...
 }

次に、UIAlertView を初めて表示すると、UIAlertView に追加された UITextField に切り取り/コピー/貼り付けのポップアップ メニューが表示されます。(たとえば、長押しすると、離した後に「貼り付け」がポップアップします。

問題は、最初に正しく機能した後、アプリを再起動しない限り、次に UIAlertView (新しいインスタンス) を表示したときに、切り取り/コピー/貼り付けボタンが表示されないことです。誰かが理由を知っているか、またはこの問題を解決する方法を知っていますか?

ボーナス情報

UIActionSheet デリゲート コールバック内でアラートの表示を作成すると、常に機能することがわかりました。たとえば、これは常に機能します (切り取り/コピー/貼り付けは、適切な場合に UITextField で常に表示されます)。

 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
  ...the above code...
 }

特典情報を更新しました

UIAlertView が初めて表示されたときだけでなく、切り取り/コピー/貼り付け popu が初めて表示されたときに機能することがわかりました。たとえば、アラート ビューを複数回表示して閉じることができます。切り取り/コピー/貼り付けは、最初に表示されたときに引き続き機能します。しかし、その後は機能しなくなります。

さらに... UITextField (アラート ビューではない) を追加し、そこに切り取り/コピー/貼り付けを表示すると、アラート ビューにある UITextField に (初めてでも) 表示されません。したがって、最終的に問題は、UITextField で初めて編集ポップアップを表示している場合、カット/コピー/ペーストが UIAlertView の UITextField にのみ表示されることです。

この 2 番目のケースで、物事を機能させるために何が起こっているのでしょうか? アプリで UIActionSheet を使用したくないので、単純な古いアクション メソッドから機能させる方法を見つけたいと思います。

ありがとう、ジェシー

4

1 に答える 1

0

正直なところ、このアイデアは UI ガイドラインに違反していると思います...正当な理由がない限り、アプリ ストアの拒否となります。

これは、UIAlertView を使用して Apple が定義したものです。

http://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/UIElementGuidelines/UIElementGuidelines.html#//apple_ref/doc/uid/TP40006556-CH13-SW8

正直なところ、別のビューに切り替えたいだけだと思います...

申し訳ありませんが、これ以上お役に立てません。

于 2011-02-04T18:23:05.673 に答える