我有一个我设置的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];
}
工作表按照预期从屏幕底部显示,并且一切正确。但是没有一个按钮处于活动状态。唯一的出路是触摸主页按钮。
我有什么遗失的吗?
视图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
{
}
答案 0 :(得分:1)
如果视图上有键盘,键盘可见的textfield / textview可能是第一个响应者。对于任何响应触摸的控制,它必须是第一响应者。
确保您的操作表在显示时是第一个响应者。
答案 1 :(得分:0)
仔细检查firstResponder状态。
答案 2 :(得分:0)
您需要在self.vew中显示您的视图,但需要在Appdelegate的根视图中显示。
使用[appDelegate.window.subviews objectAtIndex:0];
我在AppDelegate中有这个方法:
-(UIView *) getRootView {
return [self.window.subviews objectAtIndex:0];
}