小编Rob*_*ire的帖子

如何配置WKWebView来填充NSWindow?

我有一个使用XCode 7.2在Swift中开发的小型原型应用程序.该应用程序是作为带有故事板的Cocoa基于文档的应用程序创建的.因此,项目包含AppDelegate.swift,Document.swift并且Main.storyboard所有这些都与XCode生成的内容保持不变,并且ViewController.swift包含:

import Cocoa
import WebKit

class ViewController: NSViewController {

    var webView: WKWebView {
        return view as! WKWebView
    }

    override func loadView() {
        view = WKWebView(/*frame: CGRect(x: 0, y: 0, width: 200, height: 200)*/)
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        webView.loadHTMLString("<html><body><p>Hello, World!</p></body></html>", baseURL: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

我已覆盖loadView()直接创建a WKWebView并将其作为根视图分配给view属性ViewController,而不是加载故事板中定义的视图.

请注意,可以对该frame参数WKWebView进行评论,以证明该问题根源的不同行为.

期望的行为

WKWebView …

macos cocoa nsviewcontroller swift wkwebview

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

确定相机外壳凹口下方全屏 macOS 应用程序窗口的尺寸

我需要确定带有相机外壳凹口的显示器上全屏应用程序窗口的尺寸。我使用的是 Mac Book Pro(14 英寸,2021 年),但我正在寻找通用技术。至关重要的是,我需要在启动之前从全屏应用程序本身外部执行此操作,以便我可以在应用程序测试/屏幕捕获场景中提前预测窗口位置。

报告显示,包括凹口区域的全屏尺寸为1512x982。报告的其他三个边缘为零。减去顶部插图得到的大小为 1512x950,但全屏应用程序(我使用 Chromium)报告的最大化窗口大小为 1512x945,这正是我们所期望的,因为它的宽高比为 16:10。例如,SwitchResX允许将分辨率设置为 1512x945 HiDPI 16:10 以忽略凹口区域。NSScreen framesafeAreaInsetstop = 32.0

auxiliaryTopLeftAreaauxiliaryTopRightArea返回的区域的高度也为32。

令人困惑的是,visibleFrame报告为 1512x944(而不是 945),但我不确定这一像素差异从何而来。

我可以调用哪些 API 来确定全屏应用程序区域的尺寸?

macos swift

12
推荐指数
0
解决办法
500
查看次数

如何有效地将numpy.int8数组就地转换为值移位的numpy.uint8数组?

我有一个很大的numpy数组的有符号字节(dtype int8).它包含-128到+127范围内的全部值.我想dtype uint8通过向每个元素添加128来有效地将有效转换为无符号字节数组(),例如-128→0,0→128,+ 127→255 等.所以当然结果仍然适合于无符号字节.

给定正确的数字结果的简单元素添加,但dtype int16除了源数组之外,使用两倍的memory()创建结果数组,即使只需要结果元素的低字节.

>>> import numpy
>>> a = numpy.array( [-128, -1, 0, 1, 127 ], dtype=numpy.int8)
>>> b = a + 128
>>> b
array([  0, 127, 128, 129, 255], dtype=int16)
Run Code Online (Sandbox Code Playgroud)

有没有办法控制dtype结果数组uint8

另一种方法是就地修改值并将数据"转换"为新类型,如下所示:

>>> for i in xrange(0, 5):
...     if a[i] < 0:
...         a[i] -= 128
...     elif a[i] >= 0:
...         a[i] += 128
...
>>> a
array([   0,  127, -128, …
Run Code Online (Sandbox Code Playgroud)

python numpy

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

在哪里可以找到有关.NET中多维System.Array实例的Get,Set和Address方法的信息?

System.Array充当公共语言运行时(CLR)中所有数组的基类.根据这篇文章:

对于每个具体的数组类型,[]运行时添加了三种特殊方法:Get/ Set/ Address.

事实上,如果我反汇编这个C#代码,

int[,] x = new int[1024,1024];
x[0,0] = 1;
x[1,1] = 2;
x[2,2] = 3;
Console.WriteLine(x[0,0]);
Console.WriteLine(x[1,1]);
Console.WriteLine(x[2,2]);
Run Code Online (Sandbox Code Playgroud)

进入CIL我得到了,

IL_0000:  ldc.i4     0x400
IL_0005:  ldc.i4     0x400
IL_000a:  newobj     instance void int32[0...,0...]::.ctor(int32,
                                                         int32)
IL_000f:  stloc.0
IL_0010:  ldloc.0
IL_0011:  ldc.i4.0
IL_0012:  ldc.i4.0
IL_0013:  ldc.i4.1
IL_0014:  call       instance void int32[0...,0...]::Set(int32,
                                                       int32,
                                                       int32)
IL_0019:  ldloc.0
IL_001a:  ldc.i4.1
IL_001b:  ldc.i4.1
IL_001c:  ldc.i4.2
IL_001d:  call       instance void int32[0...,0...]::Set(int32,
                                                       int32,
                                                       int32)
IL_0022:  ldloc.0
IL_0023:  ldc.i4.2
IL_0024:  ldc.i4.2 …
Run Code Online (Sandbox Code Playgroud)

.net c# cil reflection.emit system.array

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

为什么在Objective-C中,在单独的语句中执行alloc和init会导致根据Xcode静态分析器释放对象?

我正在使用Objective-C开始我的第一步,并且在XCode 4.1中遇到了一个轻微的问题,尽管是一个令人困惑的问题,即静态分析器(Product-> Analyze).我为有理数创建了一个简单的Fraction类,我分配并初始化为这样,

Fraction* f = [[[ Fraction alloc ] initWithNumerator:3 withDenomimator:5]
                                                               autorelease];
[ f print ];
Run Code Online (Sandbox Code Playgroud)

哪个printNSLog用于显示分数的方法,一切正常.但是,如果我将alloc/ initconstruct分成两个语句(我意识到这是非惯用的 - 我只是想了解机器)并使用手册release而不是autorelease给出:

Fraction* f = [ Fraction alloc ]; // 1. Method returns an Objective-C object with
                                  //    a +1 retain count (owning reference)
[ f initWithNumerator:3 withDenomimator:5]; // 2. Object released
[ f print ]; // 3. Reference-counted object is used after it is released
[ f release ]; …
Run Code Online (Sandbox Code Playgroud)

xcode memory-management objective-c

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