gpt4 book ai didi

iphone - Landscape 中的 UIActionSheet 的 buttonIndicies 不正确

转载 作者:可可西里 更新时间:2023-11-01 17:11:14 27 4
gpt4 key购买 nike

我有一个操作表让我在 iPhone 的横向模式上感到悲伤。一切都显示得很好,但在 Landscape 中,第一个真正的按钮与取消按钮具有相同的索引,因此逻辑不起作用。

我已经尝试使用 initWithTitle: delegate: cancelButtonTitle: destructiveButtonTitle: otherButtonTitles: 创建 actionSheet,但那是一样的,我当前的代码如下;

UIActionSheet* actionMenu = [[UIActionSheet alloc] init];

actionMenu.delegate = self;
actionMenu.title = folderentry.Name;
actionMenu.cancelButtonIndex = 0;

[actionMenu addButtonWithTitle:NSLocalizedString(@"str.menu.cancel",nil)];

[self addActiveButtons:actionMenu forEntry:folderentry];
[actionMenu showInView:[self.navigationController view]];
[actionMenu release];

addActiveButtons 方法基本上配置要添加哪些按钮,它使用这样的代码;

[menu addButtonWithTitle:NSLocalizedString(@"str.menu.sendbyemail",nil)];

有时可能有 6 个按钮,所以在横向模式下 actionSheet 会像这样显示;

action sheet

我的代表是这样回应的;

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

NSLog(@"Cancel Button Index is : %d",actionSheet.cancelButtonIndex);
NSLog(@"Button clicked was for index : %d",buttonIndex);

NSString *command = [actionSheet buttonTitleAtIndex:buttonIndex];

DLog(@"COMMAND IS: %@ for index: %d",command,buttonIndex);

if ([command isEqualToString:NSLocalizedString(@"str.menu.sendbyemail",nil)]) {

// Do stuff here

}

if ( ... similar blocks ... ) { }

}

在所示示例中,我发现 cancelButtonIndex 如预期的那样为 0,但第一个其他按钮的按钮索引也是如此!这意味着如果我点击第二个(保存到照片)按钮,例如,我的调试输出如下所示;

取消按钮索引为:0

点击的按钮对应于索引:1

命令是:通过电子邮件发送索引:1

我已经尝试了各种排列组合,现在正焦头烂额地想知道我错过了什么。我进行了很好的搜索,但人们似乎遇到的其他问题是显示问题,而不是功能问题。

谁能看出我哪里出错了?

附言。我知道这不是最好的 UI 体验,但我认为大多数用户实际上大部分时间都是纵向的,或者使用 iPad 版本的应用程序,所以我准备接受横向的操作表默认行为,假设我可以让它真正起作用!

最佳答案

好的,通过计算我添加了多少个按钮然后将取消按钮添加为最后一个选项来修复它,所以我的代码如下所示;

int added = [self addActiveButtons:actionMenu forEntry:folderentry];

[actionMenu addButtonWithTitle:NSLocalizedString(@"str.menu.cancel",nil)];
actionMenu.cancelButtonIndex = added;

希望能帮助遇到同样问题的其他人!

关于iphone - Landscape 中的 UIActionSheet 的 buttonIndicies 不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5744964/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com