มีวิธีบอก OS X Lion ให้ปิดใช้งานการยกเลิกอัตโนมัติสำหรับแอปพลิเคชั่นที่ระบุว่าคุณไม่ต้องการยกเลิกอัตโนมัติหรือไม่?
FYI Lion เป็นคนเงียบหากคุณยังไม่ทราบว่าจะเกิดอะไรขึ้นถ้าคุณไม่ต้องการให้เป็นแอปพลิเคชันบางอย่าง
Lion จะออกจากแอปพลิเคชันที่ทำงานอยู่ด้านหลังของคุณหากตัดสินใจว่าต้องการทรัพยากรและหากคุณไม่ได้ใช้งานอยู่ ฮิวริสติกในการพิจารณาว่าแอปพลิเคชั่น“ อยู่ในการใช้งาน” นั้นค่อนข้างอนุรักษ์นิยมหรือไม่: ต้องไม่ใช่แอปพลิเคชันที่ใช้งานอยู่จะต้องไม่มีหน้าต่างที่มองเห็นไม่ย่อเล็กสุดและแน่นอนว่าต้องสนับสนุน
ตัวอย่างเช่นสมมติว่าฉันไม่ต้องการให้ TextEdit เลิกโดยอัตโนมัติเมื่อฉันไม่มีหน้าต่าง TextEdit เปิดอยู่และเปลี่ยนไปใช้แอปพลิเคชันอื่น
หลังจากดูที่คู่มือการเขียนโปรแกรม Mac App สำหรับการสิ้นสุดโดยอัตโนมัติฉันคิดว่าฉันจะลองเพิ่มคีย์ NSSupportsAutomaticTermination ด้วยค่าของ No ในไฟล์ Info.plist สำหรับ TextEdit (ไม่ทำงาน: TextEdit ขัดข้องเมื่อเปิด)
ที่จะสังเกตเห็นไฟล์ไม่ได้รวมคีย์ NSSupportsAutomaticTermination (ซึ่งหมายความว่า Apple ใช้NSProcessInfoเพื่อเปิดใช้งานการเลิกจ้างอัตโนมัติ) ดังนั้นการเพิ่มคีย์อาจไม่มีผลกระทบใด ๆ ตั้งแต่ NSProcessInfo แทนที่สิ่งที่อยู่ในไฟล์ plist (ตรวจสอบแล้วว่าสิ่งนี้ไม่ทำงานโดยการลงนาม TextEdit ด้วยตนเองกับ Info.plist ที่แก้ไขรวมถึงคีย์ NSSupportsAutomaticTermination และค่า No)
ผลข้างเคียงอย่างหนึ่งที่สังเกตคือการเปลี่ยนแปลงสิ่งใดก็ตามในไฟล์ Info.plist ทำให้ TextEdit หยุดทำงานเมื่อเปิด สาเหตุถูกบันทึกไว้จากบันทึกข้อผิดพลาดว่า "ลายเซ็นรหัสไม่ถูกต้อง" ซึ่งหมายความว่าแอป TextEdit และเนื้อหาทั้งหมดเป็นรหัสที่เซ็นชื่อ วิธีแก้ปัญหาคือการด้วยตนเองลงชื่อเข้าใช้แอปโดยใช้codesign
คำสั่งและใบรับรองหลักลงนามด้วยตนเองตามที่ระบุไว้ในรหัสงานที่ลงนาม
หลังจากสิ่งที่ฉันได้ลองมาแล้ว TextEdit ยังคงเชื่อฟังการเลิกจ้างอัตโนมัติ