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 delagate 回调中创建显示警报,我可以让事情始终正常工作。例如,这总是有效的(剪切/复制/粘贴总是在适当的时候出现在 UITextField 中)

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

更新的奖金信息

事实证明,它在第一次显示剪切/复制/粘贴弹出窗口时起作用......不仅仅是第一次显示 UIAlertView。因此,例如,我可以多次显示和关闭警报视图。剪切/复制/粘贴在第一次显示时仍然有效。但在那之后它将不再起作用。

另外......如果我添加一个 UITextField (不在警报视图中)并在那里显示剪切/复制/粘贴,那么它永远不会在警报视图中的 UITextField 中显示(即使是第一次)。所以最后问题似乎是剪切/复制/粘贴仅显示在 UIAlertView 的 UITextField 中,如果它在任何 UITextField 中首次显示编辑弹出窗口。

知道在第二种情况下可能会发生什么使事情正常进行吗?我不想在我的应用程序中使用 UIActionSheet,所以我想找到一种方法让它从一个普通的旧操作方法中工作。

谢谢,杰西

4

1 回答 1

0

老实说,我认为这个想法违反了 UI 指南......这将构成对应用商店的拒绝,除非你有充分的理由。

这是苹果定义的使用 UIAlertView

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 回答