[英]ABPeoplePickerView is leaving hidden windows? (OSX)
這就是我發現問題的方式:
我的應用程序有一個帶有ABPeoplePickerView的小對話框窗口。 完成后,此窗口(或其控制器)已正確釋放。
當應用終止時,在applicationShouldTerminate:
我遍歷其所有窗口( [NSApp windows]
),並且如果該窗口具有委托並且它對windowShouldClose:
作出響應windowShouldClose:
我調用該方法,如果響應為否,則停止終止。
記錄每個窗口的標題顯示,每次創建對話框窗口時,都會創建兩個額外的隱藏窗口,其標題分別為“ People Picker Debug Info”和“ People Picker Preview”,並且在打開對話框時不會丟棄這些窗口。關閉。 如果您將它們設為makeKeyAndOrderFront,則實際上可以看到它們。 后者為空白。 長期運行該應用程序可能會創建大量此類窗口,大概是在消耗資源。 我應該擔心嗎? 我應該做些什么嗎? 我可以利用它們嗎?
我的直覺是在對話框的deallocate
方法中按標題搜索這些窗口,然后在此處將其關閉。 是否有任何ARC問題?
窗口控制器的dealloc方法中的以下幾行已解決了該問題,據我所知,沒有任何副作用。
for (NSWindow *w in [NSApp windows]) {
if ([w.title isEqualToString:@"People Picker Debug Info" ]) {
[w setReleasedWhenClosed:YES];
[w close];
}
if ([w.title isEqualToString:@"People Picker Preview" ]) {
[w setReleasedWhenClosed:YES];
[w close];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.