小编ale*_*ntd的帖子

在OS X 10.7.2下解锁焦点错误视图((null))

我有一个Cocoa应用程序,有一个NSWindowController控制NSWindowNSComboBox它.没什么特别的,它在升级到OS X 10.7.2之前工作正常.现在我得到以下异常,当窗口控制器的窗口加载时,该异常只发生一次.(由于我的应用程序中的窗口控制器仍然加载,每次应用程序启动时只会发生一次.)随后聚焦和取消聚焦组合框不会触发它.

任何人都知道10.7.2中是否有变化,如果有变化,如何解决它?

(这与Xcode 4.2一起发生.)

2011-10-24 11:30:21.649 MyApp[7934:707] Unlocking Focus on wrong view ((null)), expected <NSComboBox: 0x40083d6e0>
2011-10-24 11:30:21.653 MyApp[7934:707] (
    0   CoreFoundation    0x00007fff8412d286 __exceptionPreprocess + 198
    1   libobjc.A.dylib   0x00007fff88cdad5e objc_exception_throw + 43
    2   CoreFoundation    0x00007fff8412d0ba +[NSException raise:format:arguments:] + 106
    3   CoreFoundation    0x00007fff8412d044 +[NSException raise:format:] + 116
    4   AppKit            0x00007fff8c76c1d5 -[NSFocusStack unfocusView:] + 194
    5   AppKit            0x00007fff8c7e838e +[_NSAutomaticFocusRing showForView:] + 2545
    6   AppKit            0x00007fff8cdbb4d1 __postActiveFirstResponderChanged_block_invoke_1 + 32
    7   CoreFoundation    0x00007fff840ecf37 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 …
Run Code Online (Sandbox Code Playgroud)

nswindow nsresponder xcode4.2 osx-lion

53
推荐指数
1
解决办法
1192
查看次数

Servlet容器中的Java Web应用程序与独立版本

构建一个小型Java Web应用程序以在Servlet容器(如Tomcat)中运行与构建具有内置Web服务器的独立Java应用程序并在反向代理后面运行它有什么好处?

我已经玩Java一年了.我注意到启动Tomcat需要时间,并且由于类加载器问题,并不总是可以进行热重新部署.对我来说,Servlet API似乎有点令人费解,特别是从配置和RESTful设计的角度来看(它并没有真正完全支持).

另一方面,我注意到我的IDE可以以闪电般的速度编译和运行独立的应用程序.配置Apache进行反向代理是一件小事,嵌入式Jetty似乎可以处理我可以抛出的任何东西.当我可以使用Restlet,Wicket等时,我不需要Servlet.能够更好地了解我的应用程序是如何工作的(因为它没有与庞大的应用程序服务器集成)让人感觉更有能力.堆栈跟踪更短.下载大小更小.最终用户配置更容易.我猜测性能可能会更好,因为涉及的软件层较少.

但是,我想起了通常听起来好得令人难以置信的说法.所以我的问题是,为什么我不想让我的网络应用程序独立?Servlet容器给了我和/或我的最终用户我们真正需要但不知道的是什么?

java servlets

30
推荐指数
2
解决办法
1万
查看次数

在分页UIScrollView中清除自转过渡

我有一个分页UIScrollView,其中用户水平浏览图像,如Apple的Photos.app.这有效,但现在我正在尝试添加旋转支持.

我已经让视图旋转正常,并设法正确设置contentSize,bounds和subviews框架以适应不同的方向.所以在轮换之前和之后,一切都还可以.

然而,过渡本身很尴尬.第一个图像完美旋转,就好像旋转轴位于图像的死点(滚动视图框).第二个图像"摆动",因为旋转轴位于相同的位置:第一个图像的中心.我从第一张图片越远,"摇摆"越快.

我可以通过在旋转之前覆盖不透明的UIView并在之后隐藏它来掩盖它.但这是一个黑客.必须有一个优雅的方式来做到这一点......

iphone uiscrollview autorotate

12
推荐指数
2
解决办法
9796
查看次数

Rails功能测试:在POST请求中发送URL查询参数

我在Rails功能测试中发送POST请求,如下所示:

post :create, collection: { name: 'New Collection' }
Run Code Online (Sandbox Code Playgroud)

collection 按预期,以JSON编码的表单数据发送.

我无法弄清楚的是如何向URL添加查询.文档说我可以访问请求对象并在发送之前对其进行修改.所以我尝试了这个:

@request.GET[:api_key] = 'my key'
post :create, collection: { name: 'New Collection' }
Run Code Online (Sandbox Code Playgroud)

但是,:api_key永远不会出现在request.GET服务器上的哈希值中.(但是,当我通过另一个HTTP客户端发送它时,它会这样做.)

ruby-on-rails functional-testing

10
推荐指数
1
解决办法
1万
查看次数

绑定到Cocoa中的类方法?

如果我有一个像这样的方法:

@interface CharacterSet
    + (NSArray *)allCharacterSets;
@end
Run Code Online (Sandbox Code Playgroud)

我可以使用Cocoa绑定绑定它吗?

我正在尝试将NSComboBox的内容值连接到它.当我进入CharacterSet.allCharacterSetsIB中的"模型密钥路径"字段时,它不起作用,说:

[addObserver:forKeyPath:@"CharacterSet.allCharacterSets"选项:0x0上下文:0x200275b80]被发送到与"CharacterSet"属性不符合KVC的对象.

我不知道还有什么可以尝试的.目前我必须allCharacterSets在我的自定义窗口控制器(或自定义窗口)中将返回值存储到ivar中以使其工作,这似乎是我不应该采取的额外步骤.

static-methods key-value-coding cocoa-bindings

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

在NSOpenPanel关闭后做一些事情

我有一个NSOpenPanel,我想在用户点击OK后对选择进行一些验证.我的代码很简单:

void (^openPanelHandler)(NSInteger) = ^(NSInteger returnCode) {
    if (returnCode == NSFileHandlingPanelOKButton) {
        // do my validation
        [self presentError:error]; // uh oh, something bad happened
    }
}

[openPanel beginSheetModalForWindow:[self window]
                  completionHandler:openPanelHandler];
Run Code Online (Sandbox Code Playgroud)

[self window]是一个应用程序模式窗口.面板将作为工作表打开.到现在为止还挺好.

Apple的文档说完成处理程序应该在用户关闭面板后调用.但在我的情况下,按下"确定/取消"按钮后立即调用,而不是在面板关闭时调用.这样做的结果是错误警报在打开的面板上方打开,而不是在面板关闭后打开.它仍然有效,但它不像Mac那样.

我更喜欢的是用户单击确定,打开面板表格折叠,然后显示警报表.

我想我可以使用延迟选择器来呈现警报,但这似乎是一个黑客.

cocoa nssavepanel nsopenpanel

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

在 Java 中检测图像编码

我正在接受用户输入的图像。我只想允许 JPEG 图像。图像作为 InputStream 到达(myInputStream下面称为)。在下面的代码中,返回的 IteratorImageIO.getImageReaders()始终为空。

ImageInputStream imageInputStream = ImageIO.createImageInputStream(
    myInputStream);
Iterator<ImageReader> iter = ImageIO.getImageReaders(imageInputStream);
if (!iter.hasNext()) {
    // this always happens
}
ImageReader reader = (ImageReader) iter.next();
if (!reader.getFormatName().equals("jpeg")) {
    // haven't got this far yet
}
Run Code Online (Sandbox Code Playgroud)

我也试过myInputStream直接传递到ImageIO.getImageReaders()相同的结果。

java javax.imageio

2
推荐指数
1
解决办法
3436
查看次数

从PHP调用Ghostscript:无法打开初始设备

我已经从MacPorts安装了Ghostscript,并且我试图从PHP脚本调用它来从多页PDF文件中提取单页然后输出它.我的代码看起来像这样:

<?php

$cmd = '/opt/local/bin/gs -sDEVICE=pdfwrite -dNOPAUSE \
    -dBATCH -dSAFER -dFirstPage=20 -dLastPage=20
    -sOutputFile=%stdout  "/path/to/input/pdf.pdf"';

// Will uncomment this when it works
// header("Content-Type: application/pdf");

putenv("GS_LIB=/opt/local/share/ghostscript/9.02/lib");
putenv("GS_FONTPATH=/opt/local/share/ghostscript/fonts");
putenv("TMPDIR=/tmp");

passthru($cmd);
Run Code Online (Sandbox Code Playgroud)

当我在网络浏览器中点击此脚本时,我看到:

GPL Ghostscript 9.02 (2011-03-30) Copyright (C) 2010 Artifex Software, Inc.
All rights reserved. This software comes with NO WARRANTY: see the file
PUBLIC for details. **** Unable to open the initial device, quitting.
Run Code Online (Sandbox Code Playgroud)

相同的命令来自shell.

php ghostscript

2
推荐指数
1
解决办法
4679
查看次数

在PHP中获取继承类的路径名

我正在尝试获取从超类继承的PHP类的绝对路径名.看起来应该很简单.我认为下面的代码尽可能简洁地解释了它:

// myapp/classes/foo/bar/AbstractFoo.php
class AbstractFoo {

    public function getAbsolutePathname() {
        // this always returns the pathname of AbstractFoo.php
        return __FILE__;
    }

}


// myapp/classes/Foo.php
class Foo extends AbstractFoo {

    public function test() {
        // this returns the pathname of AbstractFoo.php, when what I
        // want is the pathname of Foo.php - WITHOUT having to override
        // getAbsolutePathname()
        return $this->getAbsolutePathname();
    }

}
Run Code Online (Sandbox Code Playgroud)

我不想覆盖的原因getAbsolutePathname()是会有很多类扩展AbstractFoo,在文件系统的许多不同的地方(Foo实际上是一个模块),它似乎违反了DRY.

php pathname

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

NSMenuItem的状态绑定到NSUserDefaults中的布尔值不保持同步

我的主菜单(MainMenu.xib)中有一个名为"Word Wrap"的NSMenuItem.它的值绑定到我的共享用户默认控制器,也在XIB中实例化.它在选择时还会发送以下操作:

- (IBAction)toggleWordWrap:(id)sender {
    NSUserDefaultsController *ctrlr = [NSUserDefaultsController sharedUserDefaultsController];
    if ([[[ctrlr values] valueForKey:@"wordWrapIsEnabled"] boolValue]) {
        // turn on word wrap
    } else {
        // turn off word wrap
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的app delegate +initialize方法中,我使用默认值填充标准用户默认值:

+ (void)initializeDefaults {
    NSDictionary *defaults = [NSDictionary dictionaryWithObjectsAndKeys:
                             [NSNumber numberWithBool:NO], @"wordWrapIsEnabled",
                             // etc.
                             nil];
    NSUserDefaultsController *ctrlr = [NSUserDefaultsController sharedUserDefaultsController];
    [ctrlr setInitialValues:defaults];
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我的NSMenuItem状态与我的用户默认值不同步.以下是发生的事情的时间表:

应用发布:

  • 未选中自动换行菜单项
  • wordWrapIsEnabled 没有
  • 自动换行是关闭的

第一次选择Word Wrap:

  • 选中Word Wrap菜单项
  • wordWrapIsEnabled不是(BZZZT WRONG)
  • 自动换行(BZZZT WRONG)

第二次选择Word Wrap:

  • 未选中自动换行菜单项
  • wordWrapIsEnabled(BZZZT …

nsuserdefaults cocoa-bindings nsmenuitem

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