Objective c 取消按钮操作表的奇怪行为

Objective c 取消按钮操作表的奇怪行为,objective-c,ipad,xcode4,Objective C,Ipad,Xcode4,我是Objective-C的新手,我尝试编写一个iPad应用程序Objective-C2.0,Xcode 4.0.1。 我使用ActionSheet来了解它是如何工作的。在nib文件中,我将一个按钮绑定到buttonPressed方法 我编写了以下代码: -(IBAction)buttonPressed { UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"My Action Sheet" d

我是Objective-C的新手,我尝试编写一个iPad应用程序Objective-C2.0,Xcode 4.0.1。 我使用ActionSheet来了解它是如何工作的。在nib文件中,我将一个按钮绑定到buttonPressed方法

我编写了以下代码:

-(IBAction)buttonPressed
{   
    UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"My Action Sheet" delegate:nil cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"OK" otherButtonTitles:@"Test", nil];

    NSLog([NSString stringWithFormat:@"%d", [myActionSheet numberOfButtons]]);
    NSLog([myActionSheet buttonTitleAtIndex:0]);
    NSLog([myActionSheet buttonTitleAtIndex:1]);
    NSLog([myActionSheet buttonTitleAtIndex:2]);

    [myActionSheet showInView:self.view];
    [myActionSheet release];
}
这是NSLog结果:

2011-04-14 14:52:30.428 TrampManage[3568:207] 3
2011-04-14 14:52:30.429 TrampManage[3568:207] OK
2011-04-14 14:52:30.430 TrampManage[3568:207] Test
2011-04-14 14:52:30.432 TrampManage[3568:207] Cancel

但显示的视图与cf图像不同:。目前,我有一个简单的问题:为什么我的取消按钮没有出现?

正如您的标签所提示的,您可能正在从事一个ipad项目

文档中提到了iPad的“取消”按钮:

CancelButton在标题上加上鼠标右键 取消按钮。此按钮被添加到 操作表会自动和 分配了适当的索引,该索引 可从 cancelButtonIndex属性。这 按钮以黑色显示以显示 指示它表示取消 行动如果不需要,请指定nil 取消按钮或正在显示 iPad上的动作表


您可以通过触摸操作表外部来取消操作。

您很可能在iPad上,新的界面习惯用法是不显示取消按钮。用户只需在工作表外部单击即可取消工作表。这不是最好的设计决策,但现在就是这样。

在ipad上,它没有显示取消按钮。因为ipad比iphone宽,所以你可以在ipad上的操作表外点击

详细说明:

看到这张显示ok按钮的iphone图片了吗

下图显示了在iPad上显示的操作表。 有趣的是,iPad上的OK按钮由 取消按钮:不显示参数

单击时每个按钮的值buttonIndex如下所示:➤ 删除邮件-0➤ 备选案文1-1➤ 备选案文2-2➤ 好啊 -3在iPad上,当用户点击屏幕外的区域时 行动表,该行动表将被驳回,并且 buttonIndex变为3。有趣的是,如果您为 CancelButtonTile:部分,当 行动单被驳回


谢谢你的快速回答。我已经阅读了行动计划参考文档,你的绕过建议很有趣,但是。。。如果我想要一个取消按钮呢?使用其他按钮,你将不得不使用浅背景色。更多信息如下: