在“设置”中更改区域格式时,iPhone 4应用程序中的日期格式未更改
在iPhone 4上更改区域格式不会更改我的应用程序中的日期和数字格式,直到iPhone关闭并再次打开(或者应用程序以另一种方式受到威胁) 是否有方法检测UIApplicationLegate::OnActivated中的区域格式更改在“设置”中更改区域格式时,iPhone 4应用程序中的日期格式未更改,iphone,xamarin.ios,Iphone,Xamarin.ios,在iPhone 4上更改区域格式不会更改我的应用程序中的日期和数字格式,直到iPhone关闭并再次打开(或者应用程序以另一种方式受到威胁) 是否有方法检测UIApplicationLegate::OnActivated中的区域格式更改 我可以在那里重置我的应用程序,但似乎DateTime::ToSortDateString()仍在使用旧的区域设置。有可能改变这一点吗?我宁愿使用NSDate和NSDateFormatter进行日期转换和用户表示,即使在使用DateTime的Monotouch应用程
我可以在那里重置我的应用程序,但似乎DateTime::ToSortDateString()仍在使用旧的区域设置。有可能改变这一点吗?我宁愿使用NSDate和NSDateFormatter进行日期转换和用户表示,即使在使用DateTime的Monotouch应用程序下也是如此,因为在我看来,使用iOS更好 这是Monotouch的美妙之处,您可以一如既往地依赖iOS SDK
希望这能有所帮助。Pavel建议使用NSDate和NSDateFormatter部分解决了问题:当程序重新激活并更改视图时,更改区域格式后,NSDateFormatter会知道新的区域设置。此时,NSLocale.CurrentLocale还返回区域格式的正确区域设置 当然,任何实际格式化的日期仍然是旧格式,包括激活程序时显示的格式。要解决此问题,程序必须在重新激活区域格式时检测区域格式的更改,并在更改时重置所有视图。从逻辑上讲,这应该在ApplicationIDBecMeactive事件期间完成 令人惊讶的是,当调用UIApplicationDelegate::OnActivated(ApplicationIDBecMeactive)时,NSLocale.CurrentLocale仍然返回旧的区域设置,而NSDateFormatter还不知道新的格式强> 我不确定他们何时意识到新的格式。当您切换到另一个视图时,他们会知道新的格式。iPhone邮件应用程序在重新激活时会即时检测到新的区域格式,因此应该有一种方法在程序激活时检测它。可能在ApplicationIDBecomeActive之后引发NSCurrentLocalEdicChangeNotification事件,但此事件在monotouch中不可用
有什么建议吗?我假设使用IOS4+,因为应用程序实际上不会终止,所以在重新启动应用程序之前,不会更新任何全局设置(如区域)。或者,您可以将应用程序设置为IOS3.x应用程序,并在退出活动状态时关闭。