win10阻止win10安装软件弹出窗口件

iOS-利用UIDocumentInteractionController打开和预览文档 - 简书
<div class="fixed-btn note-fixed-download" data-toggle="popover" data-placement="left" data-html="true" data-trigger="hover" data-content=''>
写了59837字,被15人关注,获得了74个喜欢
iOS-利用UIDocumentInteractionController打开和预览文档
iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller。此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件。而且,从4.2开始,Quick Look Framework提供了对多种文档的内置打印。你可以参考DocumentInteraction Controller类参考以及Quick Look Framework指南,以及DocInteraction示例程序。本文讨论了Document InteractionController的使用。-、创建实例DocumentInteraction Controller使用静态方法interactionControllerWithURL创建实例,这个方法使用一个NSURL作为参数。代码:NSURL *url=[NSURL fileURLWithPath:path];controller = [UIDocumentInteractionController
interactionControllerWithURL:url];二、显示预览窗口Document Interaction Controller对象使用presentPreviewAnimated方法弹出一个全屏的文档预览窗口。代码:BOOL b=[controller presentPreviewAnimated:YES];三、显示菜单如果你不想直接弹出预览窗口,你可以显示一个选项菜单给用户,由用户选择相应的操作。显示菜单可以使用下列方法:–presentOptionsMenuFromRect:inView:animated:–presentOptionsMenuFromBarButtonItem:animated:–presentOpenInMenuFromRect:inView:animated:–presentOpenInMenuFromBarButtonItem:animated:这些方法都是类似的,只是显示位置有区别而已。以下代码演示其中一个方法的使用。代码:CGRect navRect = self.navigationController.navigationBar.navRect.size = CGSizeMake(1500.0f, 40.0f);[controller presentOptionsMenuFromRect:navRect inView:self.view
animated:YES];四、使用委托如果你显示一个Document Interaction Controller ,则必需要为delegate属性用指定一个委托。让委托告诉DocumentInteraction Controller如何显示。代码:controller.delegate =委托对象需要实现一系列委托方法,最常见的包括:–documentInteractionControllerViewControllerForPreview:–documentInteractionControllerViewForPreview:–documentInteractionControllerRectForPreview:这3个方法在用户点击“快速查看”菜单时依次调用。代码:- (UIViewController*)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController*)controller{}- (UIView*)documentInteractionControllerViewForPreview:(UIDocumentInteractionController*)controller{return self.}- (CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController*)controller{return self.view.}//点击预览窗口的“Done”(完成)按钮时调用- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController*)_controller{[_controller autorelease];}
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:iOS利用UIDocumentInteractionController和Quick Look打开或预览文档
在App的开发过程中,我们避免不了要打开软件中的文件,例如:Excel文件,Word文件,图片文件等不同格式的文件或者想要通过第三方的App来打开这些文件,那么我们就要用到UIDocumentInteractionController和Quick Look来解决这些问题了。
UIDocumentInteractionController的使用方法
UIDocumentInterRactionController使用时的注意事项
Quick Look的使用方法
一、UIDocumentInteractionController的使用方法
- 首先创建一个UIDocumentInteractionController对象,并对该对象初始化一个URL作为文件路径
1、首先要遵循UIDocumentInteractionControllerDelegate
2、其次是创建一个UIDocumentInteractionController对象
@property(nonatomic,retain)UIDocumentInteractionController *docC
3、在方法中进行UIDocumentInteractionController对象的初始化
- (void)open{
NSString *fileName = [self.listDicobjectForKey:@&fileName&];
NSString* path = [NSHomeDirectory()stringByAppendingPathComponent:
_docController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:path]];//为该对象初始化一个加载路径
_docController.delegate =//设置代理
//直接显示预览
[_docController presentPreviewAnimated:YES];
CGRect navRect =self.navigationController.navigationBar.
navRect.size =CGSizeMake(.0f);
//显示包含预览的菜单项
[_docController presentOptionsMenuFromRect:navRectinView:self.viewanimated:YES];
//显示不包含预览菜单项
//[docController presentOpenInMenuFromRect:navRect inView:self.view animated:YES];
4、代理方法
- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller
- (UIView *)documentInteractionControllerViewForPreview:(UIDocumentInteractionController *)controller
return self.
- (CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController *)controller
self.view.
二、UIDocumentInterRactionController使用时的注意事项
1、UIDocumentInterRactionController定义的时候一定要是retain类型的,因为必须要对该对象进行持有;
2、当选择显示包含预览的菜单项
[_docController presentOptionsMenuFromRect:navRectinView:self.viewanimated:YES];时应该注意一点,该方法会触发该类的内置打印输出,会将日志信息打印出来,从而导致App崩溃严重的可能会导致手机死机,现在还未找到解决方法。类似输出结果如下(此处省略该输出的后面部分内容,因为太多了):
unknown activity items supplied: (
&public.jpeg& =
当上述方法确实无法满足你的要求的时候就可以考虑一下用Quick Look了。
三、Quick Look的使用方法
1、首先要添加QuickLook.FrameWork框架,具体怎么添加的我就不解释了。
2、在需要用到的Controller中添加头文件#import
- (void)open{
QLPreviewController *myQlPreViewController = [[QLPreviewController alloc]init];
myQlPreViewController.delegate =
myQlPreViewController.dataSource =
[myQlPreViewController setCurrentPreviewItemIndex:0];
[self presentViewController:myQlPreViewControlleranimated:YEScompletion:nil];
5、代理方法
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
- (id)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
NSString *fileName = [self.listDicobjectForKey:@&fileName&];
NSString* path = [NSHomeDirectory()stringByAppendingPathComponent:[NSStringstringWithFormat:@&Documents/%@&,fileName]];
return [NSURLfileURLWithPath:path];
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'IOS开发之关闭或退出键盘keyboard的两种方式 - 刘兴丰技术博客
IOS开发之关闭或退出键盘keyboard的两种方式
&>>&&>>&IOS开发之关闭或退出键盘keyboard的两种方式
1 次,平均分
今天写一个UITextfiled的文本框,突然发现忘了怎么了,着实郁闷了一把,网上各种方法五花八门,但是其实说到底也就两种方式,只是形式多了点。
关闭/隐藏的原理:
第一种:直接关闭键盘,最直接也是最容易忽略的。
直接把下面的代码放到回调函数里就可以了
Objective-C
[self.view
endEditing:YES];
[self.view&&endEditing:YES];
第二种:修改第一响应者
Objective-C
//textField是一个UITextField的实例
[textField resignFirstResponder];
//textField是一个UITextField的实例[textField resignFirstResponder];
ps:不管用哪种方式,大家一定别忘了添加协议,一般直接添加 Delegate就可以了
UIKeyboard关闭方式:
第一种:通过点击上某个键返回
可以根据需要设置textField的键盘类型,通过textField的returnKeyType 设置需要的返回键类型
然后在 - (BOOL)textFieldShouldReturn:( *)textField代理方法中 调用上述的两种关闭键盘的方法。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
//根据不同的return键可以在这里做一些发送或处理数据的操作
//隐藏键盘
[textField resignFirstResponder];
//[self.view endEditing:YES];
- (BOOL)textFieldShouldReturn:(UITextField *)textField{&&&&//根据不同的return键可以在这里做一些发送或处理数据的操作&&&&&&&&//隐藏键盘&&&&[textField resignFirstResponder];&&&&&& //[self.view endEditing:YES];}
ps:returnKeyType主要有这么几种:
typedef NS_ENUM(NSInteger, UIReturnKeyType) {
UIReturnKeyDefault,
UIReturnKeyGo,
UIReturnKeyGoogle,
UIReturnKeyJoin,
UIReturnKeyNext,
UIReturnKeyRoute,
UIReturnKeySearch,
UIReturnKeySend,
UIReturnKeyYahoo,
UIReturnKeyDone,
UIReturnKeyEmergencyCall,
大家看英文就应该能看懂了,就是按键的名字不同,调用的代理方法都是一样的。
第二种方式:
通过点击键盘区之外的地方隐藏键盘,这是主流软件使用的方法,尤其是安卓上,所以我们可以通过给键盘弹出后用户能看到的View添加点击手势,在回调函数里处理,特别要注意如果是tableView等这类的非常可能引起事件吞没(其实是执行了tableView 的selectCell的方法)
一下我是写的简单例子,_tableView是我定义的一个UITableView类型的实例变量。
Objective-C
//取消cell响应
_tableView.allowsSelection = NO;
//添加触摸响应(关闭键盘)
[_tableView setUserInteractionEnabled:YES];
UITapGestureRecognizer *singtap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(hiddenKeyBoard)];
[_tableView addGestureRecognizer:singtap];
//取消cell响应&&&&_tableView.allowsSelection = NO;&&&&&&&&//添加触摸响应(关闭键盘)&&&&[_tableView setUserInteractionEnabled:YES];&&&&&&&&UITapGestureRecognizer *singtap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(hiddenKeyBoard)];&&&&[_tableView addGestureRecognizer:singtap];
通常情况下,因为布局问题使用keybaord需要和键盘的监听结合使用,在我写完通知和自动布局后我会写篇博文,把键盘监听和自动布局结合起来,更贴近实际用处。
除特别注明外,本站所有文章均为原创,转载请注明出处来自
日志总数:61
评论总数:10 条
标签数量:202 个
链接总数:0 个
建站日期:
运行天数:506 天
最后更新:
扫一扫二维码分享iOS学习笔记(12)
安卓中可以通过intent意图调用第三方程序,在ios中,也可以通过UIDocumentInteractionControllers调用第三方应用打开沙盒内文件。
使用方法也十分简单,主要通过以下两步。
1.实现UIDocumentInteractionControllerDelegate代理,重写代理方法。
首先在h文件中,添加UIDocumentInteractionControllerDelegate代理,然后在m文件中实现必要的代理方法。主要实现一下方法,其他方法看看应该知道啥意思了。
#pragma mark - UIDocumentInteractionControllerDelegate
- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)interactionController
& & returnself;
2.弹出预览或分享对话框。
这里可以写一个方法,弹出预览页面或分享对话框
-(void)openDocument:(NSString*)myFilePath{
& &&NSURL *url = [NSURLfileURLWithPath:myFilePath];//需要打开的文件url
& &UIDocumentInteractionController *docController = [UIDocumentInteractionControllerinteractionControllerWithURL:url];
& && docController.delegate =self;
docController.UTI&=@&com.pkware.zip-archive&;&//文件类型是压缩文件
//弹出预览画面
//& & [docController presentPreviewAnimated:YES]; &
//弹出分享对话框
& & CGRect navRect =
self.navigationController.navigationBar.frame;
& & navRect.size =CGSizeMake(self.view.width,40.0f);
& & [self.docControllerpresentOptionsMenuFromRect:navRectinView:self.view&animated:YES];&
其中,docController.UTI 的&#20540;可以参考苹果官方说明:
/library/mac/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html
调用这个方法,结果是这样子的。因为模拟器里没装应用,所以只能看到一个选项mail。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:28644次
排名:千里之外
原创:17篇
(1)(1)(3)(2)(5)(3)(2)主题 : nstableview删除时候的问题&& 出现左边的删除图标的时候右边能不能自己在右边添加图标呢?
级别: 新手上路
可可豆: 122 CB
威望: 122 点
在线时间: 6(时)
发自: Web Page
来源于&&分类
nstableview删除时候的问题&& 出现左边的删除图标的时候右边能不能自己在右边添加图标呢?&&&
我就是想在删除时候的自己在右边加一个查看详细信息的accessoryView 一点击就跳转到其他界面大家帮帮忙啊 &&&& (24 K) &#19979;&#36733;&#27425;&#25968;:4
级别: 新手上路
可可豆: 18 CB
威望: 18 点
在线时间: 0(时)
发自: Web Page
帮你顶一下
级别: 精灵王
发帖: 1224
可可豆: 3129 CB
威望: 3173 点
在线时间: 1366(时)
发自: Web Page
引用 引用楼主yfcyfc123于 15:15发表的 nstableview删除时候的问题&#160;&#160; 出现左边的删除图标的时候右边能不能自己在右边添加图标呢? :我就是想在删除时候的自己在右边加一个查看详细信息的accessoryView 一点击就跳转到其他界面大家帮帮忙啊 [attachment=49301]&#160;&#160;[attachment=49302]&#160;&#160;[attachment=49303]
汗,我还以为附件是代码。。。一个比较笨的方法就是往cell上加image,然后隐藏,要删除的时候显示就行了,此外,木有NSTableVIew哦~~~
级别: 新手上路
可可豆: 122 CB
威望: 122 点
在线时间: 6(时)
发自: Web Page
回 2楼(1204) 的帖子
敢问大侠怎么加image呢 在那个方法里面加啊 我是菜鸟哦&&&& 我给你分啊&&这个怎么给分呢?
级别: 新手上路
可可豆: 122 CB
威望: 122 点
在线时间: 6(时)
发自: Web Page
回 2楼(1204) 的帖子
我打错字了 哈哈 是uitableview?
级别: 精灵王
发帖: 1224
可可豆: 3129 CB
威望: 3173 点
在线时间: 1366(时)
发自: Web Page
回 3楼(yfcyfc123) 的帖子
弄一个imageview,把imageview.image设成箭头再设一下imageview.frame然后cell.contentview addsubview:imageview不过要注意释放问题。。
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版

我要回帖

更多关于 windows10安装不了软件 的文章

 

随机推荐