小编Mar*_*ark的帖子

带有NSWindowCollectionBehaviorStation的NSWindow在仪表板上可见.这是一个错误吗?

我想让我NSWindow:

  1. 在所有空间都可见
  2. 显示桌面时可见(按下F11)
  3. 在Mission Control/Expose中不可见

以下就是这样,但有副作用:

[self setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces
                            | NSWindowCollectionBehaviorStationary ];
Run Code Online (Sandbox Code Playgroud)

切换到Mac OS X Lion上的仪表板时,窗口仍然可以单独显示仪表板项目一秒钟,然后隐藏.

这是预期的行为还是一个错误?我的应用程序的用户发现在仪表板消失之前看到仪表板上的窗口会让人感到困惑.我原以为他们只能在Spaces而不是Dashboard上展示.

cocoa spaces apple-expose nswindow

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

Mac OS X Lion:检测另一个应用程序是否以全屏模式运行?

在Cocoa应用程序中,有没有办法判断另一个应用程序当前是否处于全屏模式?

我的应用程序配置为显示在所有空间上并侦听mouseEntered事件以将自己命令到前端.

问题是当另一个应用程序处于全屏模式并且用户碰巧将鼠标移动到我的应用程序窗口所在的黑色区域时,它将被带到前面(多个监视器发生).

我只看到了上面[self setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces];启用的行为.

这是我的应用程序的其他相关代码.

- (void) mouseEntered:(NSEvent *)theEvent
{
    // Don't do this when another app is in full screen mode:
    [[self window] orderFront:self];
}
Run Code Online (Sandbox Code Playgroud)

cocoa fullscreen nswindow osx-lion

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

App沙箱:如何让XPC服务读取用户在父应用中打开的文件?

我有一个简单的Cocoa图像预览应用程序.用户使用a选择文件NSOpenPanel,应用程序使用Quick Look API生成预览图像.

我想将预览生成移动到单独的XPC服务中.如果没有应用程序沙盒,一切正常,但在为父应用程序和XPC服务启用应用程序沙盒后,XPC服务将被拒绝对用户所选文件的读取权限.

允许父应用程序读取文件(因为它是通过NSOpenPanel选择的).

如何将用户选择的文件的"文件读取"权限从父应用程序传输到XPC进程,以便XPC进程可以读取文件以生成预览?

我的XPC服务通过其权利请求文件读取访问,我将以下密钥添加到XPC服务Info.plist,但这没有帮助:

JoinExistingSession = YES
Run Code Online (Sandbox Code Playgroud)

cocoa xpc sandbox appstore-sandbox

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

Mongoose Model.find()在未连接到数据库时挂起

我正在经历一些错误情况,试图了解如何处理这些情况.

在没有数据库连接的情况下,Mongoose Model.find(...)调用似乎挂起.下面是示例代码.我会假设使用err对象调用回调,但事实并非如此.

如何防止模型调用挂起?readyState每次访问模型时,是否需要手动检查?

// app.js
// Let's use a non-existing host so connecting fails:
// (callback is invoked with err object)
mongoose.connect('mongodb://localhostXXX/blog', function(err){ ... });

BlogPost  = mongoose.model('BlogPost', BlogPostSchema);

// api.js
exports.list_posts = function(req, res) {

    // Ready state is '0' = disconnected (since we used a wrong hostname)   
    console.log('DB ready state: ' + BlogPost.db.readyState);

    // This will not invoke the callback:
    BlogPost.find(function(err, threads) {
        // Never called...
    });
 }
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

10
推荐指数
2
解决办法
4179
查看次数

SwiftUI:如何让 HStack 沿多行(如集合视图)包装子项?

我正在尝试使用 SwiftUI 重新创建基本的集合视图行为:

我有许多水平显示的视图(例如照片)。当没有足够的空间在同一行显示所有照片时,剩余的照片应换行到下一行。

下面是一个例子:

风景版 肖像

看起来可以将一个元素VStack与多个HStack元素一起使用,每个元素包含一行的照片。

我尝试使用GeometryReader和迭代照片视图来动态创建这样的布局,但它不会编译(包含声明的闭包不能与函数构建器 'ViewBuilder' 一起使用)。是否可以动态创建视图并返回它们?

澄清:

盒子/照片可以有不同的宽度(与经典的“网格”不同)。棘手的部分是我必须知道当前框的宽度才能决定它是否适合当前行,或者我是否必须开始新行。

swiftui vstack hstack

10
推荐指数
2
解决办法
4393
查看次数

Xcode 4工作区:从项目B添加框架作为项目A的依赖项

这应该很简单,但我无法弄清楚如何在Xcode 4中执行此操作:

我有一个Xcode工作区,有两个顶级项目:

  • 项目A(app):应用程序依赖于项目B构建的框架
  • 项目B(框架):构建框架的一个目标

我想将项目B中的Framework目标添加为项目A的应用程序目标的依赖项.但是,Build Phases > Target Dependencies对于项目A的目标,我只看到项目A(不是项目B的框架目标).

我还在改进框架,所以我想让应用程序目标在它发生变化时自动构建框架.

有没有办法在不使框架项目成为项目A的子项的情况下执行此操作?

workspace build-process xcode4

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

如何等待WebViewBrush.Redraw()完成(UWP打印)?

我有一个基本的UWP应用程序,内嵌WebView呈现相当大的HTML文档(最多500个字母大小的打印页面).

我想添加对打印HTML文档的支持.这是我的方法:

  1. 为了支持分页,我生成第二个HTML文档,分为"页面" <div style="height:100vh">,每个"页面" 使用一个,最多500个.
  2. 我将"分页"HTML加载到WebViewXAML页面上隐藏的第二个,我根据用户选择的页面大小调整大小以适合一页.
  3. 我等待WebView完成加载......
  4. 现在为每个"页面":
    1. 我将WebView设置为scrollY仅使用JavaScript显示当前页面:window.scrollTo(0, -pageOffset)
    2. 然后我WebViewBrush用来捕获当前页面的快照WebView
    3. 对剩余的所有页面重复此操作...

问题:

我可以生成所有500页的打印预览,但有时预览会丢失页面而其他页面会多次显示.

我怀疑这是因为我WebViewBrush.Redraw()用来捕获滚动的WebView的快照,但文档说是Redraw() 异步发生的.我可能会在WebViewBrush有机会重绘之前滚动浏览当前页面,从而意外地捕获下一页.

如何确保WebViewBrush已捕获WebView以便我可以滚动到下一页?

我的代码生成一个页面:

    private async Task<Rectangle> MakePage(WebView webView, 
                        Size pageSize, double pageOffset)
    {
        // Scroll to next page:
        await webView.EvaluateJavaScriptSnippetAsync(
                             $"window.scrollTo(0, {pageOffset})");

        var brush = new WebViewBrush();
        brush.Stretch = Stretch.Uniform;
        brush.SetSource(webView);
        brush.Redraw(); // XXX Need to wait for this, but there's no API

        // Add a delay hoping Redraw() finishes... I …
Run Code Online (Sandbox Code Playgroud)

printing webview windows-10 uwp uwp-xaml

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

自定义视图控制器转换iOS 7期间闪烁

我正在尝试进行一个非常简单的过渡:一个视图将屏幕的一半移动到左侧,而第二个("到")视图移动半个屏幕.

我有动画工作,但当我反转动画时,我看到一个闪烁."to"视图(即原始视图)在0,0的原点可见,尽管我设置了不同的帧.

我转储了视图层次结构.帧设置正确(-100 0; 320 480用于查看),但是它显示为0,0.视图的屏幕截图是否缓存在动画的某处?

- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
UIViewController *fromViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toViewController   = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];

UIView *container = [transitionContext containerView];

CGRect offsetCoverRect    = CGRectMake(-100.0, 0.0, 320, 480);
CGRect detailsRect        = CGRectMake(-100.0 + 320.0, 0.0, 320, 480);
CGRect detailsOutsideRect = CGRectMake(320.0, 0.0, 320, 480);

CGRect normalRect = CGRectMake(0.0, 0.0, 320, 480);


if (self.revealDetails)
{
    toViewController.view.frame = detailsOutsideRect;
    [container addSubview:toViewController.view];
}
else
{
    [container insertSubview:toViewController.view belowSubview:fromViewController.view];

    // reversing… set the frame to the original offset (shows at 0,0 …
Run Code Online (Sandbox Code Playgroud)

objective-c uiviewcontroller uiviewanimation ios ios7

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

在拖动操作期间未调用NSView mouseEntered/mouseMoved(反之亦然)

我有一个透明的无边框窗口NSView.当鼠标光标进入透明视图时,应该出现第二个视图(放置目标),允许用户删除文件.

问题是draggingEntered:透明视图上拖动文件时不会调用(因此永远不会出现放置目标视图).

透明视图正确设置了跟踪区域.不拖动文件(即正常的鼠标移动)时,透明视图会正确触发mouseEntered:mouseMoved:事件.

看起来像鸡蛋问题:

我需要draggingEntered:触发透明视图,或者我需要mouseEntered:在拖动文件时调用以显示放置目标视图.

任何想法如何解决这个问题?

cocoa drag-and-drop nsview

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

应用内购买有时会因SKErrorDomain Code = 0"Unknown Error"而失败.在生产中

我有一个Mac应用程序,提供应用程序内购买.有一段时间我有用户联系我,因为购买失败并出现以下错误.

请注意,这适用于普通用户.这对我来说可以.(对于具有"测试"用户帐户的开发人员来说,这有很多问题,这不是这种情况).

错误:

Error Domain=SKErrorDomain Code=0 "Unknown Error." UserInfo=0x7fead1e44490 
{NSLocalizedDescription=Unknown Error.} 
Run Code Online (Sandbox Code Playgroud)

macos storekit in-app-purchase mac-app-store

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