编辑重新发布...我不小心将我之前的问题标记为“社区 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,所以我想找到一种方法让它从一个普通的旧操作方法中工作。
谢谢,杰西