我正在使用自定义UIGestureRecognizer子类来跟踪我InfoView班级的手势.该InfoView班是一个自定义的子视图UITableViewCell称为子类InfoCell.
我已经将我的手势识别器添加到我的根视图(屏幕上其他所有内容的父视图,因为我的自定义手势识别器的目的是允许InfoCell 在表之间拖动视图).现在,除了一件事以外,一切都有效.我在我的UIGestureRecognizer子类中使用以下代码来检测InfoView视图上的触摸:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UIView *touchView = [[touches anyObject] view];
if ([touchView isKindOfClass:[InfoView class]]) {
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是InfoView对象的触摸被截获,因此它们不会被转发到UITableView包含InfoCell它的父视图InfoView.这意味着我无法再通过拖动视图来滚动表InfoView视图,这是一个问题,因为它InfoView涵盖了整个视图InfoCell.
有什么方法可以将触摸转发到表格视图,以便它可以滚动?我已经尝试了很多东西:
[super touchesBegan:touches withEvent:event];
[touchView.superview.superview touchesBegan:touches withEvent:event];(touchView.superview.superview获取对其父级的引用UITableView)
但到目前为止还没有任何工作.此外,cancelsTouchesInView我UIGestureRecognizer的设置是NO,因此不会干扰触摸.
感谢帮助.谢谢!
我实现了以下委托方法NSTextField来添加自动完成支持:
- (NSArray *)control:(NSControl *)control
textView:(NSTextView *)textView
completions:(NSArray *)words
forPartialWordRange:(NSRange)charRange
indexOfSelectedItem:(NSInteger *)index
Run Code Online (Sandbox Code Playgroud)
问题是这个方法永远不会被调用.我可以验证delegate的NSTextField正确设置,因为其他的委托方法,他们应该发挥作用.
我有一个看起来像这样的视图层次结构:

所以基本上我有一个带有子视图的NSSplitView,它包含一个滚动视图(用于表视图)以及一个包含3个子视图的页脚视图.需要注意的一些重要事项:
NSClipView的NSScrollView是一种特殊的子类,是一个层托管视图,并且使用CAScrollLayer作为背衬层.这种布局我的行为非常不稳定.以下是我正在获得的三个不同场景,每次启动应用程序时都会随机化.
1)一切都好看.背景视图和所有内容都在那里:

2)按钮显示正常,但背景视图似乎是部分透明的:

3)背景视图显示正常但按钮消失:

绝对没有代码在每个场景之间发生变化.我只是停下来再次运行应用程序.我确保在运行时我没有更改与不透明度相关的任何内容.我在运行时唯一要做的就是在视图上设置背景颜色和图像.
编辑:我有一种感觉,重叠的视图可能会造成麻烦,所以我测试没有重叠,得到相同的结果.
编辑2:这似乎是zPosition层支持视图的层的问题.订单是乱码和随机的.如果我手动强制图层的zPosition到正确的值以匹配子视图顺序,那么一切都很好.不幸的是,我找不到更简洁的方法来做到这一点,而不仅仅是设置zPosition.
场景:
比方说,我有一个名为实体,Author即有一个叫做一对多关系books的Book实体(反向关系author).如果我有一个现有的Author对象集合,我想books在一个获取请求中为所有这些对象的关系出错.
码
这是我到目前为止所尝试的:
NSArray *authors = ... // array of `Author` objects
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Book"];
fetchRequest.returnsObjectsAsFaults = NO;
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"author IN %@", authors];
Run Code Online (Sandbox Code Playgroud)
执行此获取请求不会导致数组中books对象的关系authors出现故障(通过日志记录进行检查).
我也试过反过来做提取请求:
NSArray *authors = ... // array of `Author` objects
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Author"];
fetchRequest.returnsObjectsAsFaults = NO;
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"SELF IN %@", authors];
fetchRequest.relationshipKeypathsForPrefetching = @[@"books"];
Run Code Online (Sandbox Code Playgroud)
这也不会引发故障.这样做的恰当方式是什么?
在iOS 8(或甚至可能在iOS 7/7.1中)NSAttributedStringiOS上添加了渲染文本表的功能.此API 在OS X上公开,但在iOS 上不公开.但是,可以通过将包含表的HTML传递给iOS,在iOS上创建包含文本表的属性字符串-[NSAttributedString initWithData:options:documentAttributes:error:].
正确创建了属性字符串,但是当我尝试使用a渲染字符串时UITextView,会抛出此异常:
<NSATSTypesetter: 0x7f8900faec90>: Exception *** -[NSConcreteTextStorage attribute:atIndex:effectiveRange:]: Range or index out of bounds raised during typesetting layout manager <NSLayoutManager: 0x7f8902e13440>
1 containers, text backing has 1884 characters
Currently holding 1884 glyphs.
Glyph tree contents: 1884 characters, 1884 glyphs, 1 nodes, 64 node bytes, 7680 storage bytes, 7744 total bytes, 4.11 bytes per character, 4.11 bytes per glyph
Layout tree contents: 1884 …Run Code Online (Sandbox Code Playgroud) 我正在使用Matt Gemmell的MAAttachedWindow(http://mattgemmell.com/source)和NSStatusItem在菜单栏中显示自定义视图.我很困惑如何让它淡入淡出.通常我会做这样的事情:
[window makeKeyAndOrderFront:self];
[[window animator] setAlphaValue:1.0];
Run Code Online (Sandbox Code Playgroud)
并淡出:
[[window animator] setAlphaValue:0.0];
Run Code Online (Sandbox Code Playgroud)
但是这个代码似乎对MAAttachedWindow没有影响.有任何想法吗?
谢谢
我有一个核心数据应用程序,最终将成为iPhone/iPad通用应用程序.
我想实现云同步,以便运行应用程序的iPhone和iPad可以共享数据.我打算使用最近发布的Dropbox API.有没有人对最佳方法有什么想法呢?Dropbox API允许应用程序在云上存储文件.我想的是原始存储云上应用程序的数据库(sqlite),然后下载该数据库,但我意识到使用该方法会使合并更改(而不是替换整个数据库)变得非常困难.
任何想法都表示赞赏.谢谢.
我不认为这个网站之前有过这样的问题,但我可能错了.
有谁知道如何使用iPad Photos应用程序获得整体效果的基础知识?基本上,捏一堆照片可以让你对该堆栈中的照片进行"窥视",根据两个手指之间的距离进行扩展,然后完全完成向外捏手势打开堆叠中的照片新观点.
观看此视频,了解我的意思.我知道至少有一个第三方应用程序使用与iPad Photo应用程序相同的方法,所以我知道这是可行的.我猜我会用UIPinchGestureRecognizer做点什么,但我不确定如何继续.
有什么办法来覆盖的NSScroller 在滚动视图的内容(如在iOS版)?我已经尝试了几种方法:
a)设置滚动视图内容视图(NSClipView)的框架以扩展到滚动条的边界
b)添加NSScroller对象作为滚动视图的子视图(位于我想要的位置)
c)创建一个完全自定义的滚动视图并将其作为子视图放置(这有效,但这意味着我需要重写NSScroller的所有功能)
Sparrow似乎成功地做到了这一点,它似乎是通过一个常规的NSScroller子类来实现的(因为它响应了系统偏好设置>>外观中设置的滚动设置).这并不是真正吸引滚动条的问题,只是让它覆盖了内容.
任何建议表示赞赏:-)
objective-c ×8
cocoa ×5
ipad ×3
cocoa-touch ×2
nsview ×2
airplay ×1
audio ×1
calayer ×1
cloud ×1
core-data ×1
dropbox ×1
fade ×1
ios ×1
iphone ×1
nscontrol ×1
nsscroller ×1
nsscrollview ×1
nstextfield ×1
nstextview ×1
nswindow ×1
pinch ×1
streaming ×1
uitextview ×1
uiview ×1