segmentControl 在IOS5 使用问题

ios5新版本一正式发布,马上就有客户反映问题了。
某些界面不显示,定制键盘不正常。
界面问题,原来是有些界面控件的行为改变了;
1,比如说:UISegmentedControl,
[segmentControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
原来segmentControl.selectedSegmentIndex = 0;这样的调用会导致直接调用一次segmentAction。
但是在ios5中没有调用。要手动去执行一下,可以这样改,在设置完selectedSegmentIndex以后,加上
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0) { 
        [self segmentAction:segmentControl];
    }
2,非pad界面的数字键盘,自定义增加一个ok按钮,在ios4上可以正确执行的,ios5上也不行了
比如说这个:http://www.neoos.ch/news/46-development/54-uikeyboardtypenumberpad-and-the-missing-return-key
经改进如下可以执行在ios5上正常显示

UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
            UIView* keyboard;
            for(int i=0; i<[tempWindow.subviews count]; i++) {
                keyboard = [tempWindow.subviews objectAtIndex:i];
                // keyboard view found; add the custom button to it
                if(([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES)||[[keyboard description] hasPrefix:@"<UIKeyboard"] == YES){
                    CGRect frame = CGRectMake(0.0f, 162.0f, 106.0f, 53.0f);
                    if ((orientation == UIInterfaceOrientationLandscapeLeft) || (orientation == UIInterfaceOrientationLandscapeRight)){
                        frame = CGRectMake(0.0f, 116.0f, 162.0f, 53.0f);
                    }
                    [doneBt setFrame:frame];
                    [keyboard addSubview:doneBt];
                    break;
                }
            }

你可能感兴趣的:(ios,windows,action,UIView,keyboard,ios5)