2013-03-08 2 views
3

MFMailComposeViewController가 제공되며 내 응용 프로그램에서 글꼴을 사용자 정의하지 않을 때 잘 작동합니다. 하지만 내가 할 때, 그 시간의 50 %가 제시되고 mailComposeController:didFinishWithResult:이라는 대표로 직접 전화를 걸어 MFMailComposeResultCancelled과 같은 결과를 얻습니다. 사용자가 그냥 닫으려고하는 것과 같습니다. 메일 작곡가 모양 프록시를 좋아하지 않는처럼UIAppearance 프록시를 사용하여 글꼴을 사용자 정의 할 때 MFMailComposeViewController가 작동하지 않습니다.

_serviceViewControllerReady:error: Error Domain=XPCObjectsErrorDomain Code=2 "The operation couldn’t be completed. (XPCObjectsErrorDomain error 2.)" 

이 보이는,하지만 문제는 그것의 모양 프록시를 사용하지 않도록 이벤트 드 불가능이다 :

또한 콘솔에서이 오류를 트리거합니다.

내 응용 프로그램의 모든 탐색 모음에 대해 사용자 지정 디자인이 있습니다. 그것은 팝 오버를 위해 잘 작동하고

[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; 

: 나는 folowing과 팝 오버에 대한 몇 가지 배경 사용자 정의를 제거

UIImage *navBarBackground = [UIImage stretchableHorizontalImageNamed:@"navbar-background"]; 
[[UINavigationBar appearance] setBackgroundImage:navBarBackground forBarMetrics:UIBarMetricsDefault]; 
[[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"navbar-shadow"]]; 
[[UINavigationBar appearance] setTitleTextAttributes:@{ 
    UITextAttributeTextColor: [UIColor colorWithRed:0.965f green:0.635f blue:0.647f alpha:1.f], 
    UITextAttributeFont : [UIFont brothersBoldFontOfSize:20.f], 
    UITextAttributeTextShadowColor: [UIColor blackColor], 
    UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0, -1)] 
}]; 

UIBarButtonItem *navBarButtonItemAppearance = [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]; 
[navBarButtonItemAppearance setTitleTextAttributes:@{ 
    UITextAttributeTextColor: [UIColor colorWithRed:0.478f green:0.008f blue:0.023f alpha:1.f], 
    UITextAttributeFont : [UIFont brothersBoldFontOfSize:17.f], 
    UITextAttributeTextShadowColor: [UIColor colorWithWhite:1.f alpha:0.3f], 
    UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0, 1)] 
} forState:UIControlStateNormal]; 

:이를 위해 나는이 같은 성상 프록시를 사용했다. 그러나 "MFMailComposeViewController에 포함되어있는 경우"를 사용하고 nil으로 설정하더라도 메일 작성자를 위해이 파일을 제거하는 것은 불가능합니다.

또한 하위 클래스로 만들거나 시스템 글꼴을 설정하려고 시도하지만 아무 것도 변경하지 않습니다. 그는 선물을 받고, 오류를 프린트하고, 대표에게 전화를하고 해산을합니다. 나는 그것이 작동 할 때, 폰트가 시스템에 의해 적용되지 않았을 때, 그것이 아닐 때 아래와 같이 커스텀 폰트로 표시된다는 것을 보았다.

enter image description here

+0

이봐, 당신은 이것에 대한 해결책을 가지고있다? 왜냐하면 나는 같은 문제에 직면하고 있으며 며칠 째로 인터넷 검색을하고 있기 때문이다. 이 문제를 성공적으로 해결했다면 알려주세요 ... :) – Krunal

+0

아직 해결 방법이 없습니다. –

+1

나는 해결책을 가지고있다 .... 당신이 어떤 클래스에서든'UINavigationBar'로 사용자 글꼴을 설정했다면'MFMailComposeViewController'에 영향을 줄 것입니다. 따라서 모든 클래스에서 사용자 정의 Navigationbar 글꼴을 제거하면 올바르게 작동합니다. 나는 이것이 유일한 해결책이라고 생각한다. 내비게이션 막대를 사용하여 맞춤 글꼴을 설정했을 수도 있습니다. :) – Krunal

답변