在我向 NSView 添加子视图后,我的鼠标事件响应 NSView 减去 addedSubVIew 的区域。我怎样才能避免这种情况?我希望它对所有超级视图做出响应。谢谢。
我有一个nsview,我使用绘制矩形绘制背景图像.它还有3个子视图nsbuttons.问题是,只要鼠标按下按钮,其他按钮就会消失.但是当我删除draw rect方法时,这不会发生.所以我猜这与绘制图像的draw rect方法有关.
我怎么能避免这个?谢谢.
编辑:好的,我想出了问题所在.基本上,我有一个NSMenuItem,我用3个按钮在其中放置一个视图.但在NSMenu中,顶部有一个4像素的填充.所以,基本上,删除那个填充我使用了这里提供的解决方案: NSMenuItem自定义视图上方的差距
从解决方案中,drawRect方法中有一行:
[[NSBezierPath bezierPathWithRect:fullBounds] setClip];
Run Code Online (Sandbox Code Playgroud)
那一刻,我删除了这一行,按钮表现正常.但是,顶部的填充物不会消失.
这是我的drawRect:
- (void) drawRect:(NSRect)dirtyRect {
[[NSGraphicsContext currentContext] saveGraphicsState];
NSRect fullBounds = [self bounds];
fullBounds.size.height += 4;
[[NSBezierPath bezierPathWithRect:fullBounds] setClip];
NSImage *background = [NSImage imageNamed:@"bg.png"];
[background drawInRect:fullBounds fromRect:NSZeroRect operation:NSCompositeCopy fraction:100.0];
[[NSGraphicsContext currentContext] restoreGraphicsState];
}
Run Code Online (Sandbox Code Playgroud) 我试图观察AVAudioPlayer的"currentTime"属性.但是这个方法甚至没有被调用...我需要它来设置UISlider的位置..但它不起作用.这是相关的代码:
[audioPlayer addObserver:self forKeyPath:@"currentTime" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:nil];
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
NSLog(@"%@", change);
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
一个我通过setView设置NSStatusItem的视图,如果我想,我怎么能在以后删除它?这甚至可能吗?谢谢.
我正在使用SBJsonParser来解析JSON.输入可以是0或字符串(例如a829d901093),如果它为零,则返回NSCFBoolean,如果返回其字符串NSCFString.我怎么知道哪一个被退回?谢谢!
我有一个可执行文件,我正在使用gdb进行调试.这是我第一次使用gdb,请耐心等待.
我想在函数中设置断点,我知道使用类转储的函数的名称.现在它不会让我为该函数添加断点,因为它说没有符号表.我尝试添加符号表但它仍然抱怨没有加载符号表.
那么,无论如何我可以在这种方法中设置一个断点吗?这是一个客观的c方法,而不是c(如果这有所不同).我需要做的就是检查这个方法的论点.
我有一个NSPredication,格式如下:@"Status CONTAINS[cd] shipped"
我有一个字典数组,这是一个例子:
{
{
Category = "Category 4";
Comp = "Category 4";
Depth = 02;
Grade = New;
Length = 02;
Location = "Thousand Oaks, CA";
Name = "3ply Mat";
Owner = "Owner 3";
PUP = 2;
Status = Shipped;
"Unit Number" = 20110507113852351;
Width = 02;
},
{
Category = "Category 4";
Comp = "Category 4";
Depth = 02;
Grade = New;
Length = 02;
Location = "Thousand Oaks, CA";
Name = "3ply Mat";
Owner = …Run Code Online (Sandbox Code Playgroud) 如果您不熟悉Cinch,它是Mac App Store上的一个应用程序,如果您将窗口拖动到屏幕边缘,则允许您将任意窗口调整为半/全屏大小.完全像Windows 7中的功能.
现在我的问题是,它是如何完成的?我已经查看了所有可可apis寻找通知/委托方法,无论何时拖动窗口(所有窗口,而不仅仅是运行代码的应用程序拥有的窗口),但无法找到它.看看Core Graphics API ... Quartz Display Services ....但找不到它.
任何帮助将非常感谢,因为我一直在寻找过去一周....谢谢!
编辑:调整窗口大小很容易,因为它可以通过applescript桥完成.
我有一个字典,其键是NSStrings,其对象是NSArray.这是一个例子:
key (NSString) : GroupA
value (NSArray): John
Alex
Joe
Bob
Run Code Online (Sandbox Code Playgroud)
有很多像这样的条目,这只是一个例子.我需要做的是生成这样的字符串(例如:
(GroupA contains[cd] ('John' OR 'Alex' OR 'Joe' OR 'Bob')) AND (GroupB contains[cd] ('Starcraft' OR 'WOW' OR 'Warcraft' OR 'Diablo')) AND .....
Run Code Online (Sandbox Code Playgroud)
我将把这个字符串提供给NSPredicate.生成此字符串的最佳方法是什么?我可以使用for循环,如果和所有这些,但是有更优雅的方式吗?谢谢.
我在NSOperationQueue中运行了NSOperation.NSOperation下载一些数据并将其解析为NSDictionary.我如何知道NSOperation何时完成并获得该字典?谢谢.
objective-c ×10
cocoa ×5
cocoa-touch ×4
macos ×3
ios ×2
nspredicate ×2
nsview ×2
xcode ×2
debugging ×1
drawrect ×1
gdb ×1
nsarray ×1
nsbutton ×1
nsdictionary ×1
nsoperation ×1
nsstatusitem ×1
symbol-table ×1