我有一个这样设置的UIActionSheet:
-(void)trash:(id)sender
{
UIActionSheet *sheet = [[[UIActionSheet alloc] initWithTitle:@"Delete" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Remove text" otherButtonTitles:@"Remove tags", nil] autorelease];
[sheet showInView:self.view];}
工作表将按预期从屏幕底部显示,并且都正确无误。但是,这些按钮都不是活动的。唯一的出路就是触摸Home键。
我是不是漏掉了什么?
视图self.view是视图控制器的视图。唯一奇怪的是,它比全屏高度还小,因为它位于键盘上方。
// Never called
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;
{
NSLog(@"%d",buttonIndex);
}
// Never called
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonInde
{
}
// Never called
- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex
{
}
// Called if I hit Home button
- (void)actionSheetCancel:(UIActionSheet *)actionSheet
{
}
// Called second
- (void)didPresentActionSheet:(UIActionSheet *)actionSheet
{
}
// Called first
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
{
}发布于 2009-05-18 09:45:15
如果视图上有键盘,则键盘可见的textfield/textview很可能是第一响应者。对于任何要响应触摸的控件,它都必须是第一个响应者。
当您展示行动单时,请确保它是第一个响应者。
发布于 2009-05-18 08:06:47
仔细检查firstResponder状态。
发布于 2009-09-17 06:06:30
您不需要在self.vew中显示视图,而需要在Appdelegate的根视图中显示。
使用appDelegate.window.subviews对象属性索引:0;
我在AppDelegate中有这个方法:
-(UIView *) getRootView {
return [self.window.subviews objectAtIndex:0];}
https://stackoverflow.com/questions/876209
复制相似问题