簡體   English   中英

ABPeoplePickerView會留下隱藏的窗口嗎? (OSX)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM