小编dan*_*web的帖子

iOS模拟器在启动时(间歇性地)崩溃,设备上没有崩溃

我的应用程序在iPhone 6.1模拟器上崩溃了.它在启动时崩溃,但不是每次都崩溃.事实上,我不能让它连续两次崩溃.有时它是我每次跑步的时候,有时候每次击中跑步都是这样.崩溃是一个SIGABRT并且不会产生任何错误消息.我在所有异常上设置了断点,但它总是在main.m中的UIApplicationMain(...)处断开

回溯产生:

* thread #1: tid = 0x1c03, 0x91398a6a libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT
frame #0: 0x91398a6a libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x95c31b2f libsystem_c.dylib`pthread_kill + 101
frame #2: 0x023e857b libsystem_sim_c.dylib`abort + 140
frame #3: 0x02d92b4e GraphicsServices`GSRegisterPurpleNamedPort + 348
frame #4: 0x02d9269f GraphicsServices`_GSEventInitialize + 123
frame #5: 0x02d92c1f GraphicsServices`GSEventInitialize + 36
frame #6: 0x00ee0d99 UIKit`UIApplicationMain + 600
frame #7: 0x0000277d MyApp`main(argc=1, argv=0xbffff388) + 141 at main.m:16
Run Code Online (Sandbox Code Playgroud)

该应用程序似乎没有在设备上崩溃,但这是非常烦人的,刚刚开始.我已经尝试重置内容,重新启动Xcode,重新启动计算机 - 没有运气.我有什么想法可以调试这个吗?

iphone crash xcode sigabrt ios

7
推荐指数
1
解决办法
2409
查看次数

NSMenuItem身高?

如何更改NSMenuItem的高度?当我更改菜单的字体时,NSMenuItem会自动调整大小以适合标题,在标题的上方或下方不留空格.它看起来非常狭窄.

看起来像这样:

在此输入图像描述

希望它看起来像这样:

在此输入图像描述

我已经尝试了与菜单项的属性标题相关的百万次调整,但无济于事.我也不想使用菜单项的view属性,因为我想保持高亮显示.还有其他想法吗?

编辑:这是我想要的(或多或少),但基于NSMenu,而不是从头开始重做.

在此输入图像描述

cocoa objective-c nsmenu nsmenuitem

5
推荐指数
1
解决办法
2094
查看次数

有一个有很多子层的CALayer.在子层上调用setNeedsDisplay时,我收到无效的上下文错误

我只是改写了我的游戏以使用核心动画来努力使其更快.我有一个UIView,其中包含许多子图层(游戏"图块").tile子层实际上是CALayer子类,它们使用绘制自己的内容drawInContext:.例如,当选择一个磁贴时,需要重新绘制它,所以我调用[tileLayer setNeedsDisplay]并得到一堆无效的上下文错误.如果我打电话[mainView setNeedsDisplay][mainView.layer setNeedsDisplay],没有任何瓷砖重绘.如何才能重新绘制单个图块(CALayer子类)?

编辑:从非常有用的评论,我能够弄清楚这只发生在CALayer子类绘制图像时.以下是错误:

<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextSetBlendMode: invalid context 0x0
<Error>: CGContextSetAlpha: invalid context 0x0
<Error>: CGContextTranslateCTM: invalid context 0x0
<Error>: CGContextScaleCTM: invalid context 0x0
<Error>: CGContextDrawImage: invalid context 0x0
<Error>: CGContextRestoreGState: invalid context 0x0
Run Code Online (Sandbox Code Playgroud)

以下是导致错误的代码行:

[[UIImage imageNamed:@"flag.png"] drawInRect:self.bounds];
Run Code Online (Sandbox Code Playgroud)

我还有另一种方法是在CALayer子类中绘制图像吗?

iphone cocoa-touch core-animation calayer

3
推荐指数
1
解决办法
1898
查看次数

带圆角的 NSTableView

我正在尝试自定义我的应用程序的 UI,我希望我的 NSTableView 有圆角。所以我继承了 NSTableView 并得到了这个:

伊格

但是,当我填充表格并选择一行时,选择是在边框上绘制的,如下所示:

伊格

我试过在表格视图绘图代码中添加一个剪辑,但它不起作用。有关如何解决此问题的任何建议?

编辑:

我在 NSTableView 中的绘图代码如下:

- (void)drawRect:(NSRect)dirtyRect {
    [NSGraphicsContext saveGraphicsState];
    NSRect frame = NSMakeRect(0.0, 0.0, [self bounds].size.width, [self bounds].size.height-1.0);
    [[NSBezierPath bezierPathWithRoundedRect:frame xRadius:3.6 yRadius:3.6] addClip];
    [super drawRect:dirtyRect];
    [NSGraphicsContext restoreGraphicsState];
}
Run Code Online (Sandbox Code Playgroud)

实际的圆形框架是在 NSScrollView drawRect 方法中绘制的。有趣的是,这确实剪辑了第一行和最后一行的选择:

伊格

但不是在表格滚动时:

伊格

所以问题仍然存在:如何在 NSScrollView 的圆形框架内剪辑所有绘图?

macos cocoa rounded-corners nstableview

3
推荐指数
1
解决办法
1672
查看次数