Tom*_*ren 3 iphone objective-c eventkit
在iPhone上使用EventKit时,我注意到可能存在一些无法修改的事件.我到目前为止遇到的例子是生日和与CalDAV同步的事件.当您在iPhone上的标准内置日历应用程序中查看事件的详细信息时,右上角的"编辑"按钮在这些情况下不可见,在查看"正常"事件时可以看到该按钮.
我到处搜索,阅读所有文档,但我根本找不到任何告诉我如何检测这种行为!我之后只能检测到它:
我正在寻找一种方法,我可以预先检测事件的不可编辑行为.我知道这是可能的,因为我已经看到其他日历应用程序正确实现了这一点.
好吧,似乎SDK没有向我提供任何我可以用来检查EKEvent是否为只读的东西.我创建了一个解决方法,创建了一个向所有EKEvent实例添加"isReadOnly"方法的类别.
EKEvent + ReadOnlyCheck.h
@interface EKEvent(ReadOnlyCheck)
- (BOOL) isReadOnly;
@end`
Run Code Online (Sandbox Code Playgroud)
EKEvent + ReadOnlyCheck.m
#import "EKEvent+ReadOnlyCheck.h"
@implementation EKEvent(ReadOnlyCheck)
- (BOOL) isReadOnly {
BOOL readOnly;
NSString *originalTitle = [self.title retain];
NSString *someRandomTitle = [NSString stringWithFormat:@"%i", arc4random()];
self.title = someRandomTitle;
readOnly = [originalTitle isEqualToString:self.title];
self.title = originalTitle;
[originalTitle release];
return readOnly;
}
@end
Run Code Online (Sandbox Code Playgroud)
当上面的文件到位后,我可以简单地调用isReadOnly我选择的EKEvent.
#import "EKEvent+ReadOnlyCheck.h"
...
if ([event isReadOnly]) {
// Do your thing
}
...
Run Code Online (Sandbox Code Playgroud)
我还没有使用Event Kit,但从文档中可以看出,可编辑性是日历的属性,而不是事件的属性.event.calendar获取事件的日历,并calendar.allowsContentModifications告诉您日历是只读还是读写.
| 归档时间: |
|
| 查看次数: |
2417 次 |
| 最近记录: |