gpt4 book ai didi

iphone - UIActionSheet 长列表行为在 4.2 中发生了变化?

转载 作者:行者123 更新时间:2023-12-03 19:15:57 26 4
gpt4 key购买 nike

我发现 iOS 4.2 中 UIActionSheet 的行为发生了一些变化。我在 Apple 的开发者文档或论坛中找不到任何相关内容,因此我不确定如何解决该问题。

在我的列表应用程序中,我向用户呈现一个操作表,她可以从中选择她想要在启动时加载的列表。显然,这意味着项目的数量是可变的,并且控件可以很好地处理它。直到大约 7 个项目,所有项目都显示为按钮。一旦超过该阈值,它就会将项目放入 ScrollView 中以供选择。在 4.2 之前,它在滚动列表中包含“取消”按钮。在 4.2 中,现在似乎分离了 Cancel 控件,将其保留为按钮,同时将其余项目放入 ScrollView 中。问题是,它似乎将 Cancel 项目保留在按钮索引列表中,因此当我检查 clickedButtonAtIndex: 或 didDismissWithButtonIndex: 中的 buttonTitleAtIndex:buttonIndex 时,第一个项目返回“Cancel”,然后其他项目标题为关闭 1。单击“取消”按钮也会返回“取消”。

还有其他人经历过这种情况并对如何处理有建议吗?同样,这在 3.0、3.1、4.0 和 4.1 中运行良好。

这是我正在使用的相关代码:

- (IBAction)popupDefaultListActionSheet {
UIActionSheet *popup = [[UIActionSheet alloc]
initWithTitle:nil
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:nil];
for (List *l in allActiveLists) { // allActiveLists defined elsewhere
[popup addButtonWithTitle:[l label]];
}
popup.actionSheetStyle = UIActionSheetStyleBlackOpaque;
popup.tag = 23;
[popup becomeFirstResponder];
[popup showInView:[self.view.window.subviews objectAtIndex:0]];
[popup release];
}

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

DLOG(@"AppSettingsVC.actionSheet didDismissWithButtonIndex: %d", buttonIndex);
NSString *defaultListName = [actionSheet buttonTitleAtIndex:buttonIndex];
DLOG(@"chosen default list was: %@", defaultListName);
}

最佳答案

尝试在末尾动态添加取消按钮,而不是最初设置:

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"My Action Sheet"
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];

for (I32 i = 0; i < itemCount; i++) {
[actionSheet addButtonWithTitle:itemText];
}

[actionSheet addButtonWithTitle:@"Cancel"];
[actionSheet setCancelButtonIndex:itemCount];

至少对我们来说似乎可以在 iOS 4.2 中正常工作。

关于iphone - UIActionSheet 长列表行为在 4.2 中发生了变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484173/

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