“取消”按钮的ActionSheet的奇怪行为

时间:2011-04-14 13:21:06

标签: objective-c ipad xcode4

我是Objective-C的新手,我尝试编写iPad应用程序(Objective-C 2.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

但显示的视图安静不同(参见图片:http://www.imagup.com/data/1117452257.html)。目前,我有一个简单的问题:为什么我的“取消”按钮没有出现?

3 个答案:

答案 0 :(得分:0)

正如您的标记提示,您可能正在开发一个ipad项目。

文档说明了iPad的取消按钮:

  

cancelButtonTitle 标题   取消按钮。此按钮已添加到   动作表自动和   分配了适当的索引,其中   可以从   cancelButtonIndex属性。这个   按钮以黑色显示   表示它代表取消   行动。 如果您不想要,请指定nil   取消按钮或正在展示   iPad上的操作表

您可以在操作表外触摸取消。

答案 1 :(得分:0)

你最有可能在iPad上,新的界面习惯用法是不显示取消按钮。用户只需单击工作表外即可取消工作表。不是最好的设计决定恕我直言,但这就是它现在的方式。

答案 2 :(得分:0)

在iPad上

它不显示取消按钮。因为ipad的宽度比iphone&为了解雇它你可以在ipad上的操作表之外选项卡。

细节解释:

看到这个显示确定按钮的iphone图像 enter image description here

  下图

显示了iPad上显示的操作表。   有趣的是,在iPad上的OK按钮(设置为   cancelButtonTitle:参数)不显示。

enter image description here

  

单击时每个按钮的值(buttonIndex)如下:
➤   删除消息 - 0
➤选项1 - 1
➤选项2 - 2
➤确定    - 3
在iPad上,当用户点击外面的区域时   行动表,行动表被驳回和价值   buttonIndex变为3.有趣的是,如果你指定了nil   cancelButtonTitle:part,当buttonIndex的值为-1时   行动表被驳回。