我正在尝试获取有关我藏匿的信息,但是git告诉我这个stash@{0}并且stash@{1}含糊不清.git stash list工作正常,.git/logs/refs/stash似乎有适当的内容(不是我是git内部的专家).
% git stash list
stash@{0}: On master: two
stash@{1}: On master: one
% git stash show stash@{1}
fatal: ambiguous argument 'stash@1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Run Code Online (Sandbox Code Playgroud)
简单的git stash show工作正常.那么为什么git stash list给我的名字含糊不清呢?
在我的Web视图中,我使用CSS变量在运行时更改各种颜色,具体取决于是否启用了macOS 10.14的暗模式.那很多都很好.棘手的部分是在系统外观变化时更新颜色.
我通过观察effectiveAppearance窗口上的属性来检测更改.该通知按预期发布,但当我更新颜色时,NSColor仍然会给我暗模式颜色(或应用程序启动的任何模式).例如,NSColor.textColor当我响应从暗模式到光线的切换时,仍然是白色而不是黑色.我自己的颜色资产似乎也是如此.
我应该采用不同的方式或时间来获得这些颜色吗?或者这可能是操作系统错误?
编辑:如果Web视图的有效外观名称发生更改,
我还尝试创建子类WebView并更新我的颜色drawRect().第一次,即使应用程序在黑暗模式下启动,我也能获得所有浅色.之后,当我从灯光模式切换到黑暗时,我得到系统颜色的深色版本和资产目录颜色的浅色版本.
在调试器外部,切换到暗模式可以工作,但初始加载总是变为浅色.
我正在使用encodeRestorableState/ restoreStateWithCoder来保存和恢复窗口的状态.(我正在手动执行此操作,因为我希望在文档中显式保存窗口状态,而不仅仅依赖于恢复其状态作为恢复应用程序状态的一部分的操作系统)
我遇到的问题是,当它恢复时,控制台中会记录一个错误,它无法恢复第一个响应者,因为有问题的视图将其窗口设置为nil.
我尝试makeFirstResponder(nil)在编码之前调用,但随后窗口是它自己的第一个响应器,并抛出异常,因为它无法编码自身.
我是从我的窗口控制器那里做的windowDidLoad.这样做awakeFromNib并没有什么不同.
那么有没有办法可以阻止窗口保存/恢复第一个响应者,或者确保第一个响应者视图首先安装在窗口中?
我正在尝试使用libgit2执行以下操作:
git log -z --all --topo-order
Run Code Online (Sandbox Code Playgroud)
我遇到了以下问题:1)找到最简单的方法将所有裁判推入到revwalker中; 2)以相同的顺序获得结果.虽然我尝试过拓扑和时间排序的各种组合,但我仍然看到较旧的分支出现在顶部附近.
我的最新尝试包括打电话git_revwalk_push_glob(walk, "refs/*"),但不是所有的分支都出来了.一个测试仓库有两个本地分支,一个(当前一个)缺失.
我实际上是在Objective-git中这样做,但是GTEnumerator接口有点受限,所以我不得不扩展它.
更新:我继续手动推送refs/heads,refs/remotes和refs/tags(以及所有stashes,因为我实际上想要的不仅仅是顶部).订购问题仍然存在.
我试图模仿单元格的正常 UITableView 行为,当您点击单元格时,它会启动,然后淡出。我已经非常接近了,除了:
.background()不会填充整个列表单元格,它只是适合内容。.listRowBackground()确实填充了单元格,但它没有动画。有没有办法为列表行背景设置动画?
以下是完整上下文的来源。正如所写,因为listRowBackground没有动画,所以你根本看不到背景变化。如果您将其更改为background,它会按预期进行动画处理,但不会填充单元格。
struct Profile {
let name: String
var selected: Bool
var hilited: Bool = false
}
extension Profile: Identifiable {
var id: String { name }
}
struct ProfilesPicker: View {
@State var profiles: [Profile]
var body: some View {
List {
ForEach(0..<profiles.count) { index in
let profile = profiles[index]
CheckCell(name: profile.name, checked: profile.selected)
// using .background() gets a proper fade but doesn't fill the cell
.listRowBackground(Color(profile.hilited ? …Run Code Online (Sandbox Code Playgroud) 我正在为类添加nullability说明符,并且我有一些指针到指针的输出参数,例如(NSString**),因为该方法返回多个对象.如何为此指定可为空性?
对于这些特殊情况,我希望调用者不传入NULL,但我不关心它们是否传递指向nil变量的指针(或者更确切地说,是预期的).
起初我尝试了(nonnull NSString**),经过几轮Xcode的建议修复后,结束了(NSString* _Nonnull *),但是第二个*仍然有警告,"Pointer缺少可空性类型说明符",没有建议修复.
当我的窗口正在加载时,我遇到了崩溃(下面的回溯)。似乎表明 Core Animation 发生了一些事情,但我没有启动任何动画,只是显示窗口。
将特定堆栈视图的剪切阻力从 1000 更改为 750 避免了一段时间的崩溃,但现在它又回来了,尽管它现在发生在不同的点。
我尝试创建我的布局的简化版本来演示这里的问题,但我无法重现该问题。所以我所能做的就是向你推荐完整的应用程序:https : //github.com/Uncommon/Xit/tree/0b70352239b6fbaba6d26c952ce6de4f111a5346
崩溃回溯:
#0 0x00007fff4339c454 in -[NSApplication _crashOnException:] ()
#1 0x00007fff43968cb1 in __65+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayRefresh]_block_invoke ()
#2 0x00007fff45af4417 in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
#3 0x00007fff45af433f in __CFRunLoopDoObservers ()
#4 0x00007fff45ad68b8 in __CFRunLoopRun ()
#5 0x00007fff45ad6153 in CFRunLoopRunSpecific ()
#6 0x00007fff44dc0d96 in RunCurrentEventLoopInMode ()
#7 0x00007fff44dc0a0f in ReceiveNextEventCommon ()
#8 0x00007fff44dc0884 in _BlockUntilNextEventMatchingListInModeWithFilter ()
#9 0x00007fff43071a73 in _DPSNextEvent ()
#10 0x00007fff43807e34 in -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] ()
#11 0x00007fff43066885 in -[NSApplication run] ()
#12 0x00007fff43035a72 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使此代码起作用:
class MyWindowController: NSWindowController
{
let thing: Thing
convenience init(thing: Thing)
{
self.thing = thing
super.init(windowNibName: NSNib.Name(rawValue: "MyNib"))
}
}
Run Code Online (Sandbox Code Playgroud)
当然,问题在于便利初始化程序无法init从超类调用。那么,如何初始化自己的thing并且仍然可以调用init(windowNibName:),这本身就是一个便捷的初始化程序?我宁愿不必重新实现自己加载的笔尖,但是如果只能使用指定的初始化程序,该如何避免呢?
对于我的 macOS 桌面应用程序的 UI 测试目标,我需要能够运行命令行工具(特别是 git)来验证某些应用程序操作,但我收到一条错误,指出它无法在应用程序沙箱中运行。
我从未明确为我的应用程序或测试目标启用沙箱,因此我无法弄清楚如何将其关闭。没有权利文件,并且我找不到任何似乎与沙箱相关的目标设置。
那么是否可以禁用 UI 测试目标的沙箱呢?我知道解决方法可能包括将 git 复制到捆绑包中,或者让用户明确选择该工具,但这些似乎都不是真正理想的。
更新:我尝试将 git 复制到测试包中以从那里运行,但仍然遇到相同的错误。
更新 2:您可以关闭测试包的沙箱,但 Xcode 自动构建的测试运行程序仍然是沙箱的(并且无法加载未签名的包),并且 AFAICT 无法更改运行程序的构建方式。我错了吗?
我有一个项目,我已经快两年没有工作了,我已经开始尝试更新它并使用最新的 Xcode (7.2.1) 再次工作。
一个问题是“产品”>“测试”命令被禁用,即使我有一个单元测试目标并且我已将其更新为使用 XCTest。
起初,我的测试都没有在测试导航器侧栏中列出,但是从 ~/Library/Developer/Xcode/DerivedData 中删除我的项目文件夹后,测试出现了,但它们呈灰色。清除 DerivedData 似乎没有任何其他效果。
当我打开一个测试源文件时,菱形出现在每个测试方法旁边的装订线中,我可以通过单击这些来运行测试。这甚至在清除 DerivedData 之前就发生了。
这是在与我之前处理该项目时不同的计算机上全新安装 Xcode 的情况。
我还能做些什么来让 Xcode 完全识别并启用我的测试?
cocoa ×4
macos ×4
objective-c ×2
swift ×2
xcode ×2
git ×1
ios ×1
libgit2 ×1
macos-mojave ×1
nscoder ×1
nscolor ×1
nswindow ×1
sandbox ×1
swiftui ×1
swiftui-list ×1