任何人都可以告訴我如何刪除QLPreviewController打印按鈕?還想禁用剪切/粘貼/複製。如何禁用QLPreviewController打印按鈕
回答
UPDATE:
這不再是iOS的6工作快速查找在另一個進程使用XPC運行。有關更多詳細信息,請參見[這裏] [3]。我沒有預見到任何方式來定製QLPreviewController。以下的答案仍然是有興趣的人預的iOS 6
如果你想簡單地刪除您需要繼承QLPreviewController
動作按鈕。然後在-viewWillAppear:
中,您需要通過調用[[self navigationItem] setRightBarButtonItem:nil];
來刪除操作按鈕。這也將刪除與其他應用程序共享文件的功能。如果你對這種損失很好,那麼這是最簡單的解決方案。有一點需要注意的是QLPreviewController
不適合定製。你可以在Github上看看這個repository。它包含一個已經安全子類化的QLPreviewController。您只需添加一行即可刪除操作按鈕。回購還有其他一些便利。
更好但更復雜的解決方案是使用UIDocumentInteractionController
。從我所瞭解的QLPreviewController
是它使用UIDocumentInteractionController
建成。 QLPreviewController
是一般用途和易於添加。 UIDocumentInteractionController
提供了更多的控制,但很難使用。我無法在這裏充分描述如何使用它。我建議查看WWDC 2010會話106瞭解文檔交互控制器。
至於禁用剪切/複製/粘貼,你不能這樣做QLPreviewController
。你可以用UIDocumentInteractionController
這樣做,但我不會指望它。根據您要顯示的文件,您可能可以完成一個完全自定義的實現,但這是很多工作。爲純文本,照片,視頻和PDF製作觀衆相對容易。 Office文檔比它的價值更努力。
編輯:
我已經建立了刪除操作按鈕直接進入RBFilePreviewer
,所以你不必擔心自己動手的能力。
謝謝。只有當我setRightBarButtonItem:nil在「viewDidAppear」 –
-viewDidAppear是一個奇怪的地方,把它。它在-viewWillAppear中工作嗎?如果可能的話,情況會好得多。另外,你是否會正確答覆/接受我的答案? – rbrown
事實證明,刪除操作按鈕並不像我想的那樣微不足道。 QLPreviewController在下面有很多怪癖。 RBFilePreviewer現在內置了該功能,並負責處理所有不同的情況。另外,我在原QLPreviewController中修正了一個「bug」,導致它在推送時不顯示文檔導航欄而不是以模態方式呈現。您還可以在我的演示存儲庫中看到RBFilePreviewer的演示:https://github.com/rob-brown/Demos。 – rbrown
如果你繼承QLPreviewController
,然後添加這一個方法:在子類
-(void)viewDidAppear:(BOOL)animated{
[[self navigationItem] setRightBarButtonItem:nil];
}
,動作按鈕會消失上面rbrown筆記。如果您使用viewWillAppear
,這將不起作用。另外,這樣做的一個意想不到的副作用是,預覽中的工具欄現在總是出現,而不是僅在您點擊視圖時出現。
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[self navigationItem].rightBarButtonItems = nil;
}
對我的作品,而不是[[self navigationItem] setRightBarButtonItem:nil];
適用於我,但是下一個箭頭和上一個按鈕已經好奇地消失,剩下兩個黑色的空按鈕。 –
我還需要定製的QLPreviewController
的導覽樹狀項目。就像rbrown所說的那樣,使用XPC,我們不能再在viewDidLoad
或viewWillAppear
中添加自定義項目。
目前我使用這種方式:
- 創建一個新類的
UIViewController
- 的
QLPreviewController
視圖添加到新的類
它似乎有線,但工程。
我以這種方式解決這個問題:
UIView *viewPreviewController; //from storyboard
QLPreviewController *previewController = [[QLPreviewController alloc] init];
previewController.delegate = self;
previewController.dataSource = self;
previewController.currentPreviewItemIndex = 0;
[previewController.view setFrame:CGRectMake(0,0, self.viewPreviewController.frame.size.width, self.viewPreviewController.frame.size.height)];
[previewController.navigationController setHidesBarsOnTap:YES];
previewController.navigationItem.rightBarButtonItems = nil;
[self.viewPreviewController addSubview:previewController.view];
,如果我沒有在一個UIView納入previewController,那就不行!
我已經找到了解決禁用QLPreviewController
的rightBarButtonItem
在iOS8上和iOS9
你只需要繼承QLPreviewController
,並覆蓋下面的方法,然後用你的子類,而不是原來的QLPreviewController
- (void)viewDidLoad {
[super viewDidLoad];
// When coming back from background we make sure the share button on the rightbBarButtonItem is disabled
__weak typeof(self) weakSelf = self;
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
weakSelf.navigationItem.rightBarButtonItem.enabled = NO;
}];
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.navigationItem.rightBarButtonItem.enabled = NO; // Disable the share button
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.navigationItem.rightBarButtonItem.enabled = NO; // Disable the share button
}
- 1. 在HtmlHelp中禁用打印按鈕
- 2. 在.net打印預覽對話框中禁用「打印」按鈕
- 3. 如何在vb.net打印後禁用按鈕?
- 4. 禁止下載/打印按鈕的DocumentViewer
- 5. 如何將按鈕添加到QLPreviewController中
- 6. 帶導航按鈕的QLPreviewController
- 7. GWT:打印按鈕
- 8. C#如何打印asp:按鈕
- 9. 打印按鈕打印附加圖像
- 10. 打印按鈕也在myprint上打印
- 11. 禁用禁用按鈕,如果使用「data-role =」按鈕「禁用」
- 12. 如何使按鈕禁用
- 13. 如何禁用ladda按鈕?
- 14. 如何禁用按鈕asp.net
- 15. 如何禁用Android按鈕?
- 16. 如何禁用jqueryui按鈕
- 17. 如何禁用按鈕
- 18. Swift:如何禁用按鈕
- 19. 如何禁用按鈕
- 20. QT - 如何禁用按鈕
- 21. IE不打印禁用單選按鈕的選擇
- 22. 如何在單擊按鈕時在按鈕上打印值?
- 23. 如何使用swift隱藏QLPreviewController中的共享按鈕?
- 24. JavaScript的打印按鈕
- 25. 使JavaScript按鈕打印值
- 26. 的ReportViewer打印按鈕
- 27. ASP.Net不打印按鈕
- 28. AR帶打印按鈕
- 29. Highcharts:「全部打印」按鈕
- 30. 無按鈕打印視圖
針對iOS6的一個解決方案,請看這裏:http://stackoverflow.com/questions/13083546/qlpreviewcontroller-hide-print-button-in-ios6 – Krumelur
做工精細用我的Xcode 8.3 https://開頭計算器.com/a/45344701/1603380 – Buntylm