มีวิธีการปิดใช้งานการยกเลิกแอปพลิเคชันอัตโนมัติของ OS X หรือไม่


11

มีวิธีบอก 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 ยังคงเชื่อฟังการเลิกจ้างอัตโนมัติ


1
ดังนั้น ... หากคุณลงชื่อสมัครใช้แอปมันทำงานได้หรือไม่
jtbandes

1
ไม่โปรแกรมยังคงยุติโดยอัตโนมัติแม้หลังจากเซ็นชื่อด้วยตนเองโดยไม่คำนึงถึงสิ่งที่ฉันได้เพิ่มไว้ใน Info.plist
MrDaniel

1
คุณได้ลองดาวน์โหลดแหล่งข้อมูลตัวอย่างสำหรับ TextEdit ที่ Apple จัดทำด้วยเครื่องมือ dev และแก้ไข (หรือลบ) NSProcessInfo เนื้อหาที่ลงทะเบียนสำหรับการเลิกจ้างอัตโนมัติหรือไม่
Cajunluke

ยังไม่ได้ลองที่ควรจะทำงานในกรณีนี้ แต่คำถามนี้เกิน TextEdit มันเป็นคำถามที่เราสามารถแก้ไขได้โดยไม่ต้องมีการแทรกแซงในระดับซอร์สโค้ดของนักพัฒนา เนื่องจากเราจะไม่สามารถเข้าถึงซอร์สโค้ดสำหรับแอปที่สนับสนุนการยกเลิกอัตโนมัติได้เสมอไป
MrDaniel

1
"นี่เป็นวิธีที่ Apple ใช้งาน" นั่นเป็นเพียงการหลอกลวง นี่เป็นคุณลักษณะใหม่ซึ่งไม่ได้โฆษณาอย่างดี จากแอปเปิ้ลเอกสารยังไม่ชัดเจนว่าสิ่งที่จำเป็นสำหรับระบบปฏิบัติการเพื่อยกเลิกโปรแกรมโดยอัตโนมัติ และ Apple ไม่สามารถโฆษณาสิ่งนี้และไม่พูดถึงในหน้าคุณสมบัติ Lion สำหรับผู้ใช้ปลายทาง ฉันคิดว่ามันเป็นสิ่งใหม่ที่ Apple กำลังพยายาม หากผู้ใช้ไม่ชอบสิ่งนี้พวกเขาควรให้เสียงกับ Apple และนักพัฒนาเพื่อให้พวกเขาสามารถทำให้ดีขึ้นได้
MrDaniel

คำตอบ:


14

ความปรารถนาของคุณคือคำสั่ง Terminal ของฉัน ;-)

defaults write -g NSDisableAutomaticTermination -bool yes

โปรดทราบว่าเนื่องจากการยกเลิกโดยอัตโนมัติไม่ได้ออกจากแอปพลิเคชันจริงๆ แต่เป็นการซ่อนแอปพลิเคชันเหล่านั้นจึงต้องออกจากโปรแกรมอย่างถูกต้องเพื่อให้มีผล


2
ยอดเยี่ยมดีหาผู้ใช้ 22760 พยายามตามที่ระบุไว้ข้างต้นและใช้งานได้ดีขอบคุณ กรณีทดสอบของ TextEdit.app จะไม่สิ้นสุดโดยอัตโนมัติอีกต่อไปหลังจากเรียกใช้ค่าเริ่มต้น ... แล้วเปิดและจากนั้นออกจาก TextEdit เมื่อเปิด TextEdit อีกครั้งจะไม่มีการทำให้ข้อความอัตโนมัติอีกต่อไปโดยไม่มีหน้าต่างเปิดอยู่และทำงานในพื้นหลัง
MrDaniel

น่าสนใจ หลังจากลองใช้คำสั่งนี้จะได้ผลแน่นอน อย่างไรก็ตามการพยายามเลิกทำมันได้พิสูจน์แล้วว่าเป็นเรื่องยากมากขึ้น ค่าเริ่มต้นเขียน -g NSDisableAutomaticTermination -bool no หรือ false หรือการลบคีย์ไม่มีผลและแอปพลิเคชันจะไม่ยุติโดยอัตโนมัติ
DrFloyd5

คำสั่งมหัศจรรย์นี้ใช้ได้กับฉันที่ Mavericks! จะมีผลเมื่อกลับมาที่เซสชันหรือเมื่อเปิดเซสชันใหม่
Nicolas Barbulesco

ขอบคุณมากสำหรับคำสั่งที่เพิ่มเข้ามาเพื่อเปิดใช้งานและออกจากแอปด้วยตนเองแล้วเปิดใหม่อีกครั้งเพื่อดูเอฟเฟกต์อย่างถูกต้อง!
jtheletter

1

มีวิธีที่แน่นอนในการแก้ไขปัญหานี้หากฮาร์ดแวร์ของคุณรองรับ คุณสามารถอัพเกรดจาก Mac OS X 10.7 (Lion) เป็น Mac OS X 10.6 (Snow Leopard)

แม้ว่าฮาร์ดแวร์บางตัวที่จะใช้งาน Lion จะไม่สามารถรองรับระบบปฏิบัติการที่ได้รับการปรับปรุง (น่าเสียดายที่ MacBook Air ของฉันในช่วงกลางปี ​​2011 ไม่ได้) แต่ก็มีคุณสมบัติเช่นRosetta (ซึ่งทำให้โปรเซสเซอร์ Intel รันซอฟต์แวร์ที่รวบรวมสำหรับ PPC) โปรเซสเซอร์) และความเข้ากันได้กับคุณสมบัติการบันทึกต่อแอพใน WireTap Studio ที่ยอดเยี่ยม

เช่นเดียวกับการอัพเกรดใด ๆ คุณสมบัติบางอย่างจะหายไป (เช่นการควบคุมภารกิจ , Launch Pad , ท่าทางบางอย่าง) และระบบปฏิบัติการบางอย่างจะเริ่มชินกับการใช้งาน (เช่นทิศทางของการเลื่อนจะถูกย้อนกลับเป็นต้น) แต่โดยรวมแล้วมันเป็น การอัพเกรดที่ดี


2
จุดดี แต่สำหรับผู้ใช้ส่วนใหญ่การบอกเลิกอัตโนมัติไม่คุ้มค่าที่จะย้อนกลับไปใช้ Snow Leopard มากกว่ามันเป็นเพียงความรำคาญเล็กน้อยสำหรับผู้ใช้บางคนฉันไม่ใช่หนึ่งในนั้น
MrDaniel

1
แน่นอนว่ามันเป็นทางออกที่ยอดเยี่ยม แต่นี่เป็นหนึ่งในหลาย ๆ วิธีที่ Snow Leopard เหนือกว่า Lion ผลสะสมของพวกเขาอาจชักนำให้ใครบางคนต้องการเสือดาวหิมะ ที่กล่าวว่าฉันเพียงแค่เรียนรู้ที่จะอยู่กับมันเช่นเดียวกับคุณสมบัติอื่น ๆ ของ Lion (โดยเฉพาะที่เกี่ยวข้องกับ iCloud) ทำให้มันคุ้มค่าที่จะทนกับข้อเสีย
Daniel

คำถามเกี่ยวกับไลออน
Graham Perrin

1
@ GrahamPerrin เป็นคำตอบของฉัน ประเด็นของฉันคือว่านี่เป็นหนึ่งในหลายสิ่งที่ Lion ยากจนและทางออกหนึ่งอาจไม่ได้ใช้ Lion
แดเนียล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.