我想让我NSWindow
:
F11
)以下就是这样,但有副作用:
[self setCollectionBehavior: NSWindowCollectionBehaviorCanJoinAllSpaces
| NSWindowCollectionBehaviorStationary ];
Run Code Online (Sandbox Code Playgroud)
切换到Mac OS X Lion上的仪表板时,窗口仍然可以单独显示仪表板项目一秒钟,然后隐藏.
这是预期的行为还是一个错误?我的应用程序的用户发现在仪表板消失之前看到仪表板上的窗口会让人感到困惑.我原以为他们只能在Spaces而不是Dashboard上展示.
在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图像预览应用程序.用户使用a选择文件NSOpenPanel
,应用程序使用Quick Look API生成预览图像.
我想将预览生成移动到单独的XPC服务中.如果没有应用程序沙盒,一切正常,但在为父应用程序和XPC服务启用应用程序沙盒后,XPC服务将被拒绝对用户所选文件的读取权限.
允许父应用程序读取文件(因为它是通过NSOpenPanel选择的).
如何将用户选择的文件的"文件读取"权限从父应用程序传输到XPC进程,以便XPC进程可以读取文件以生成预览?
我的XPC服务通过其权利请求文件读取访问,我将以下密钥添加到XPC服务Info.plist,但这没有帮助:
JoinExistingSession = YES
Run Code Online (Sandbox Code Playgroud) 我正在经历一些错误情况,试图了解如何处理这些情况.
在没有数据库连接的情况下,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) 我正在尝试使用 SwiftUI 重新创建基本的集合视图行为:
我有许多水平显示的视图(例如照片)。当没有足够的空间在同一行显示所有照片时,剩余的照片应换行到下一行。
下面是一个例子:
看起来可以将一个元素VStack
与多个HStack
元素一起使用,每个元素包含一行的照片。
我尝试使用GeometryReader
和迭代照片视图来动态创建这样的布局,但它不会编译(包含声明的闭包不能与函数构建器 'ViewBuilder' 一起使用)。是否可以动态创建视图并返回它们?
澄清:
盒子/照片可以有不同的宽度(与经典的“网格”不同)。棘手的部分是我必须知道当前框的宽度才能决定它是否适合当前行,或者我是否必须开始新行。
这应该很简单,但我无法弄清楚如何在Xcode 4中执行此操作:
我有一个Xcode工作区,有两个顶级项目:
我想将项目B中的Framework目标添加为项目A的应用程序目标的依赖项.但是,Build Phases > Target Dependencies
对于项目A的目标,我只看到项目A(不是项目B的框架目标).
我还在改进框架,所以我想让应用程序目标在它发生变化时自动构建框架.
有没有办法在不使框架项目成为项目A的子项的情况下执行此操作?
我有一个基本的UWP应用程序,内嵌WebView呈现相当大的HTML文档(最多500个字母大小的打印页面).
我想添加对打印HTML文档的支持.这是我的方法:
<div style="height:100vh">
,每个"页面" 使用一个,最多500个.WebView
XAML页面上隐藏的第二个,我根据用户选择的页面大小调整大小以适合一页.scrollY
仅使用JavaScript显示当前页面:window.scrollTo(0, -pageOffset)
WebViewBrush
用来捕获当前页面的快照WebView
问题:
我可以生成所有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) 我正在尝试进行一个非常简单的过渡:一个视图将屏幕的一半移动到左侧,而第二个("到")视图移动半个屏幕.
我有动画工作,但当我反转动画时,我看到一个闪烁."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) 我有一个透明的无边框窗口NSView
.当鼠标光标进入透明视图时,应该出现第二个视图(放置目标),允许用户删除文件.
问题是draggingEntered:
在透明视图上拖动文件时不会调用(因此永远不会出现放置目标视图).
透明视图正确设置了跟踪区域.不拖动文件(即正常的鼠标移动)时,透明视图会正确触发mouseEntered:
和mouseMoved:
事件.
看起来像鸡蛋问题:
我需要draggingEntered:
触发透明视图,或者我需要mouseEntered:
在拖动文件时调用以显示放置目标视图.
任何想法如何解决这个问题?
我有一个Mac应用程序,提供应用程序内购买.有一段时间我有用户联系我,因为购买失败并出现以下错误.
请注意,这适用于普通用户.这对我来说可以.(对于具有"测试"用户帐户的开发人员来说,这有很多问题,这不是这种情况).
错误:
Error Domain=SKErrorDomain Code=0 "Unknown Error." UserInfo=0x7fead1e44490
{NSLocalizedDescription=Unknown Error.}
Run Code Online (Sandbox Code Playgroud) cocoa ×4
nswindow ×2
apple-expose ×1
fullscreen ×1
hstack ×1
ios ×1
ios7 ×1
macos ×1
mongodb ×1
mongoose ×1
node.js ×1
nsview ×1
objective-c ×1
osx-lion ×1
printing ×1
sandbox ×1
spaces ×1
storekit ×1
swiftui ×1
uwp ×1
uwp-xaml ×1
vstack ×1
webview ×1
windows-10 ×1
workspace ×1
xcode4 ×1
xpc ×1