我想使用Accessibility API获取给定应用程序(外部)的所有窗口的列表.
目标是检查某个窗口是否打开.首先,我检查应用程序是否正在运行(使用[NSWorkspace runningApplications]并检查每个应用程序),然后我想检查为该应用程序打开的每个窗口的标题栏文本.
PS
所以我可以使用PID为app创建一个元素:
AXUIElementRef app = AXUIElementCreateApplication(pid);
Run Code Online (Sandbox Code Playgroud)
但我该怎么办呢?我是否朝着正确的方向前进?不能相信它很难找到这方面的例子.
我有一个表视图,其中单元格的构建方式不同,具体取决于表是否正在编辑.具体来说,选择样式在编辑模式时为无,在不在编辑模式时为蓝色.
当我从一个转换到另一个时,我注意到一些单元格没有更新.快速的日志记录告诉我,即使单元格的外观变化很大(例如正确地添加/删除了附件视图),表格视图也不会刷新选择样式(也不是文本).
这里发生了什么?调用setEditing时是否只更新了单元格的某些属性?大概只有那些具有允许分配单独视图样式的特定方法的人(例如EditingAccessoryType)?我想我会受益于EditingSelectionStyle.
我该如何解决?通过自定义setEditing来更改每个单元格的selectionStyle?我甚至不确定如何迭代表视图来执行此操作.reloadData不是一个选项,因为我正在使用一些动画.
在我的核心数据模型中,a Person有一个或多个Cars,由无序的多对多关系'Cars'指定.通常情况下,我需要检索一个人的汽车datePurchased,或通过dateLastUsed.
到现在为止,我已经将我自己的方法来Person进行carsByDatePurchased.这使用排序描述符对NSSet进行排序cars并返回NSArray.
可能/我应该使用Fetched Property吗?每次我需要按特定顺序购买汽车时,我会遇到使用排序描述符的一些性能开销,甚至可能实现我自己的缓存carsByDatePurchased.看起来像是为我缓存了获取的属性 - 这是正确的吗?
获取属性与我自己的实现有什么限制?
至关重要的是,获取的财产的价值在执行之间是否仍然存在?如果我更新了fetched属性并保存了我的上下文,那么下次启动应用程序时是否存储了值?
当我按下UIViewController使用时,我很难控制键盘行为pushViewController:animated:.从视图中包含一些UITextFields但是视图没有.如果在推动时键盘出现,它会自动与水平推动动画一起自动重新调整.看到幻灯片放映时,从视图中向下滑动是有点刺耳的.
我可以让键盘保持其位置并使用from控制器水平滑出视野吗?我当然已经看到这种情况反过来了,其中控制器有一个呈现的键盘在推动时从左侧滑入.
我想在我的应用程序中提供三个订阅选项:
我可以将月度和年度订阅设置为可自动更新的产品,并将它们放在同一组中,以便很好地处理升级和降级.但是,终身订购必须是常规的非消费品,因为续订产品的最长期限为一年.
如何处理从月度或年度订阅转为终身订阅的用户?我不能为剩余时间提供任何部分退款/退款,最重要的是我不能代表他们取消现有的订阅.我是否仅限于一些信息性消息("请确保您取消现有订阅"),其中包含指向"管理订阅"设置的链接?或者我能做更多的事情吗?
在调用更新底层数组的方法时,如何更新绑定到NSArrayController的tableView需要做什么?一个例子可能会澄清这一点.
当我的应用程序启动时,它会创建一个SubwayTrain.当SubwayTrain初始化时,它会创建一个SubwayCar.SubwayCar有一个可变的阵列'乘客'.当地铁车辆初始化时,乘客阵列被创建,并且放入几个人物对象(假设有一个名为"票务收集者"的人和另一个名为"无家可归者"的人).这些人总是在SubwayCar上,所以我在初始化时创建它们并将它们添加到乘客阵列.
在应用程序的生命周期中,人们登上了汽车.在SubwayCar上调用'addPassenger',并将此人作为参数传入.
我有一个NSArrayController绑定到subwayTrain.subwayCar.passengers,并在启动时我的收票员和无家可归的人显示正常.但是当我使用[subwayCar addPassenger:]时,tableView不会更新.我已经确认乘客肯定被添加到阵列中,但是在gui中没有任何更新.
我可能做错了什么?我的直觉是它与KVO相关 - 当调用addPassenger时,阵列控制器不知道更新(即使addPassenger调用[passenger addObject:].我在这里可能会出错 - 如果有帮助我可以发布代码).
感谢愿意帮忙的人.
UPDATE
所以,事实证明我可以通过改变addPassenger方法来实现这一点
[seatedPlayers addObject:person];
Run Code Online (Sandbox Code Playgroud)
至
NSMutableSet *newSeatedPlayers = [NSMutableSet setWithSet:seatedPlayers];
[newSeatedPlayers addObject:sp];
[seatedPlayers release];
[self setSeatedPlayers:newSeatedPlayers];
Run Code Online (Sandbox Code Playgroud)
我想这是因为我正在使用[self setSeatedPlayers].这是正确的方法吗?复制数组,释放旧数组并更新副本(而不是仅添加到现有数组)似乎非常麻烦.
我正在快速搜索框上设计自动提示功能.建议将包括小图标,多行文字等.该应用程序正在处理订单.搜索字段将识别各种不同的有意义的术语 - 例如客户姓氏,订单ID等.但是当输入订单ID时,我希望用户有机会查看订单或人员.我想我想要列表中的层次结构 - 所以如果我输入1234,并且它匹配3个不同的人的5个订单,则3个人返回顶层,他们的5个订单位于相应的客户下面.
快速模型:

有没有人在其他地方看到这样的事情?不想重新发明轮子.也对任何其他反馈感兴趣.
我正在添加一个UIView UIScrollView并对其进行约束,使其填充水平空间,除了一些边距.我的视觉约束看起来像这样:
@"|-16-[theLineView]-16-|"
Run Code Online (Sandbox Code Playgroud)
我已将视图设置为一个像素高,因此它将显示为一条线,并将其放在两个文本标签之间:
@"V:[someOtherStuff]-[aTextLabel]-[theLineView]-[anotherLabel]"
Run Code Online (Sandbox Code Playgroud)
但是,我发现线条的宽度只扩展到它上面/下面最长标签的宽度.
为什么会这样?
PS我已阅读此http://developer.apple.com/library/ios/#technotes/tn2154/_index.html

码
以下是来自测试项目的整个视图控制器代码,该测试项目在iPad上显示此问题.
- (void)viewDidLoad
Run Code Online (Sandbox Code Playgroud)
{[super viewDidLoad];
self.scrollView = [[UIScrollView alloc] init];
self.scrollView.translatesAutoresizingMaskIntoConstraints = NO;
self.scrollView.backgroundColor = [UIColor greenColor];
[self.view addSubview:self.scrollView];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[scrollView]|"
options:0
metrics:0
views:@{@"scrollView":self.scrollView}]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|"
options:0
metrics:0
views:@{@"scrollView":self.scrollView}]];
self.line1 = [[UIView alloc] init];
self.line2 = [[UIView alloc] init];
self.label1 = [[UILabel alloc] init];
self.label2 = [[UILabel alloc] init];
self.label3 = [[UILabel alloc] init];
for (UILabel *label in @[self.label1, self.label2, self.label3])
{
label.text = @"I am a …Run Code Online (Sandbox Code Playgroud) 例如,标签A,B和C.标签A的宽度应该更宽,B或C.
在视觉上,有些东西沿袭
@"H:[viewA(==MAX(viewB,viewC))]"
Run Code Online (Sandbox Code Playgroud) 在 Swift 中,当enum符合 时CaseIterable,“合成的 allCases 集合按声明的顺序提供案例。”
我想对CaseIterable枚举案例数组进行排序,这意味着符合Comparable. 我可以访问相同的声明顺序来确定应如何对此类对象进行排序吗?
如果没有,我的<以下实施是否合理?
enum MyEnum: CaseIterable, Comparable {
case one, two, three
}
static func < (lhs: MyEnum, rhs: MyEnum) -> Bool {
guard let lhsIndex = allCases.firstIndex(of: lhs), let rhsIndex = allCases.firstIndex(of: rhs) else {
fatalError("`MyEnum`'s implementation of `Comparable.<` found a case that isn't present in `allCases`.")
}
return lhsIndex < rhsIndex
}
Run Code Online (Sandbox Code Playgroud)
最后,有没有可能再进一步,让CaseIterable自己顺应Comparable这种方式?任何理由这将是一个坏主意?
ios ×6
cocoa ×3
cocoa-touch ×3
autolayout ×2
uiview ×2
autosuggest ×1
core-data ×1
iphone ×1
objective-c ×1
search ×1
storekit ×1
swift ×1
uikeyboard ×1
uitableview ×1