내 응용 프로그램에서 ShareKit을 사용할 계획입니다. 나는 또한 인쇄 (AirPrint)하고 싶습니다. 동일한 작업 표에 모든 옵션 (Facebook & Twitter & 프린터)을 가지고 있다고 생각했습니다. 내가 그렇게해서는 안되는 이유가 있습니까? 나는 이것을 달성하는 방법에 대한 몇 가지 팁을 찾고 있었지만 공백이 왔습니다. ActionSheet에서 항목을 제거하고 추가하지는 팁이 있습니다. 프린터 옵션이 '공유'로 간주되지 않습니까?ShareKit에 인쇄 옵션 추가
답변
ShareKit에 작업을 추가하는 과정은 "How to Add a New Action to ShareKit"에 설명되어 있습니다.이 설명은 이미 핵심 Sharekit 기능을 구현했다고 가정합니다 (예 : ShareKit 예제 프로그램을 구현 한 경우).
새 작업 템플릿을 ShareKit 템플릿 Src 폴더 (.m 및 .h 파일)에서 프로젝트로 복사하고 적절한 이름 (예 : "SHKPrint.m/.h")으로 파일 이름을 바꿉니다. 클래스 이름과 헤더 가져 오기 파일 같은 몇 가지 분명한 변경 사항이 있습니다. 헤더 파일에 #import "SHKSharer.h"
을 추가하십시오.
연결된 페이지가 설명하는대로 클래스를 actions/services 목록에 SHKSharers.plist
에 추가하십시오. (내가 볼 수있는 행동과 봉사 사이에는이 시점에서 아무런 차이가 없으며, 내가 말할 수있는 한 문제없이 함께 그룹화 될 수있다. 그러나 하나의 구별은 행동이 인증이 필요하지 않습니다. 은 템플릿의 메소드입니다.
그 후 설명서에 따르면 Understanding the share flow에 익숙해졌습니다.
canShare
메서드 중 하나 이상을 재정의해야하며 이미 수정 및 주석 처리를 위해 템플릿에 설정되어 있습니다. 나는 당신의 목적을 위해 canShareText를 공유 할 수있는 적절한 방법으로 생각하고 싶을 것입니다. 그래서 그 것을 바꾸어 YES를 반환하십시오. 그런 다음 UISimpleTextPrintFormatter 또는 UIMarkupTextPrintFormatter에 할당 된 printFormatter를 사용하여 인쇄 할 수 있습니다 (UIPrintInteractionController를 설정하지 않아도 됨). (나는 당신이 인쇄하고 싶은 것을 언급하지 않았기 때문에 즉석에서해야만합니다.)
새로운 제목의 새로운 sharer 클래스에서 sharerTitle
메서드를 수정하여 적절한 제목을 표시하십시오.
이 시점에서 코드를 실행하고 작업 시트를 볼 수 있어야합니다. 이 작업에는 인쇄 작업이 표시되지 않지만 추가 ... 버튼을 클릭하면 두 번째 시트에 인쇄 작업이 표시됩니다.
클릭하면 시트가 숨겨지는 것을 제외하고는 아무 것도 실행되지 않습니다. 이제 인쇄 작업을 수행하는 코드를 추가해야합니다. 나중에 다시 공유하도록 선택하면 가장 최근에 사용한 목록 인 첫 번째 작업 시트에 새 작업이 추가됩니다.
이미 구현 한 것으로 가정했으나 ShareKit 예제 프로그램과 같은 핵심 ShareKit 기능. 공유 버튼 작업 시트를 호출하는 방법 (공유 단추 누르기에 응답하는 것과 같이 자신의 코드에서)을 실행하면 공유 할 정보 종류 (예 : URL, 이미지, 텍스트, ... 이것은 공유 정보 (프린터, 페이 스북, 트위터 등)를 보내려는 곳과는 독립적입니다. (나는 말 앞에서 카트를 넣었고, 내 자신의 구현을 수정하여 수정했습니다. 이)하지만, 당분간이 같은 것을 그것을 설정할 것을 무시 :.
- (void) shareButtonPressed {
SHKItem *item = [SHKItem text:yourSimpleTextOrMarkupText];
// Get the ShareKit action sheet
SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];
// Display the action sheet
[actionSheet showInView:self.view];
}
이 항목 객체에 무엇이든 공유하는 운동으로 바퀴를 넣습니다.item 객체에는 shareType이 포함되어 있습니다.이 경우 SHKShareTypeText가 열거 형입니다.
이 내용을 공유 결과로 변환하는 기계는 사용하지 않을 것입니다. 나는 아직 내 숙면에서 그것을 모르고, 당신을 오도 할 수도있다.
액션 시트의 항목을 클릭하면 SHKActionSheet 클래스가 새로운 액션 클래스 (이 경우에는 SHKPrint)의 문자열 이름을 클래스로 변환하고이를 사용하여 클래스 메소드를 호출하여 같은 클래스의 인스턴스를 할당하고 초기화하십시오. (필자는 입력 할 때이 작업을 수행하고 있으므로 "more ..."두 번째 시트에서이 작업을 수행하는 방법을 건너 뛰었습니다.이를 추적하여 작동 방식을 확인하려면 독자에게 맡깁니다.)
SHKSharer 클래스의 share
, show
메서드를 통해 실행되는 호출 체인을 통해 공유가 수행됩니다. (여기에는 들어 가지 않을 autosharing에 대한 일부 비즈니스가 있지만 당분간은 무시할 수 있다고 생각합니다.) 이것은 결국 사용자 정의 클래스 (SHKPrint)의 send
메소드에 있습니다. 템플릿 파일을 살펴보면 수행 할 작업에 대한 지침이 제공됩니다.
인쇄에 대한 자세한 내용은 see this link을 참조하십시오. 인쇄 할 수있는 방법을 보여주는 좋은 예입니다.
여기에 몇 가지 이유가 있습니다. 나는 당신의 질문에 답했고, 액션 시트를 추가하는 방법을 생각합니다. 또한 여기에서 테스트 할 AirPrint 기능이 없으므로 독자적으로 더 많은 것을 할 수는 없습니다.
다른 질문이 있으면 알려주세요.
훌륭한 답변입니다. 그것을 쓰는 시간을 보내 주셔서 대단히 감사합니다. 내가 분명치 않은 모든 세부 사항을 다루었다고 확신합니다. 다시. 감사. – Alan
- 1. Crystal 보고서 인쇄 옵션
- 2. Sharekit에 페이스 북 입력란이 없습니다.
- 3. 크롬 인쇄 대화 상자에서 인쇄 옵션 비활성화
- 4. ICE PDF | 배포 옵션 및 인쇄 옵션 사용 방법
- 5. 추가 옵션 JQuery와에 JQuery와
- 6. 옵션 태그가있는 이미지 추가
- 7. configure.in 및 옵션 추가
- 8. backbone.js에 옵션 추가 model.save()
- 9. 마젠타에서 제품의 추가 옵션?
- 10. VTK의 사용자 옵션 추가
- 11. 인쇄 큐에 작업 추가 - 로컬 인쇄
- 12. strcat(); 추가 문자 인쇄
- 13. Fancybox - 인쇄 기능 추가
- 14. sugarCRM의 작업 버튼에 새로운 옵션 추가
- 15. html 인쇄 중에 페이지 범위에 대한 옵션
- 16. jQuery, 링크 클릭시 콘텐츠 인쇄 옵션
- 17. 페이지 범위가 올바르게 설정되지 않은 인쇄 옵션
- 18. 웹 페이지 내 Firefox 인쇄 옵션
- 19. JavaScript : 새 옵션 추가 후 속성 추가
- 20. (symfony 1.4) 위젯에 옵션 추가
- 21. 안드로이드 : 옵션 메뉴에 추가 동적
- 22. 도장 및 동적으로 추가 옵션
- 23. iphone - 앱 선물용 옵션 추가
- 24. 추가 명령 행 옵션 -r
- 25. MopaBootstrapBundle 추가 navbar inverse 옵션
- 26. C++ Windows 메뉴에 옵션 추가
- 27. Bash : 기존 명령에 옵션 추가
- 28. 메시징 첨부 메뉴에 옵션 추가
- 29. Ember보기에 JQuery UI 옵션 추가
- 30. VBA Outlook 추가 기능의 옵션
질문이 SK의 작업 시트에 항목을 추가하는지 또는 iOS에서 인쇄할지 여부는 명확하지 않습니다. Btw 아니오, 공유 메뉴에 인쇄 옵션을 추가하지 않겠습니다. – pt2ph8
이제 질문은 SK의 작업 시트에 인쇄 옵션을 추가하는 것에 관한 것입니다. 그래서 나는 그것을 공유하는 것과 같은 리그에서 인쇄하는 것을 고려하지 않을 것입니다. 나는 그것이 그 때 대답 일 것 같아요. 감사. – Alan
sharekit에 넣으려면 "공유"라고 부를 필요가 없습니다. 나는 그것을리스트에 올리는 것이 완벽하다고 생각합니다. (또는 이미 sharekit과 통합 된 다른 옵션 중 일부와 같은 의미입니다.) 하루가 끝날 때까지 질문에 답을 얻지 못하면 조치를 추가하기 위해 수행 한 작업을 토대로 몇 가지 팁을 전달할 것입니다. (먼저 작업해야합니다.) – Jim