पर स्टार्टअप पर स्विफ्ट कोको ऐप लॉन्च करें मुझे एक ऐसा फ़ंक्शन लिखना होगा जो ओएस एक्स 10.11 पर स्टार्टअप आइटम पर मेरा एप्लिकेशन जोड़ता है। यही कारण है कि मैं इस समय मिल गया है:ओएस एक्स 10.11
func applicationIsInStartUpItems() -> Bool {
return (itemReferencesInLoginItems().existingReference != nil)
}
func itemReferencesInLoginItems() -> (existingReference: LSSharedFileListItemRef?, lastReference: LSSharedFileListItemRef?) {
if let appUrl : NSURL = NSURL.fileURLWithPath(NSBundle.mainBundle().bundlePath) {
let loginItemsRef = LSSharedFileListCreate(nil, kLSSharedFileListSessionLoginItems.takeRetainedValue(), nil).takeRetainedValue() as LSSharedFileListRef?
if loginItemsRef != nil {
let loginItems: NSArray = LSSharedFileListCopySnapshot(loginItemsRef, nil).takeRetainedValue() as NSArray
if(loginItems.count > 0) {
let lastItemRef: LSSharedFileListItemRef = loginItems.lastObject as! LSSharedFileListItemRef
for var i = 0; i < loginItems.count; ++i {
let currentItemRef: LSSharedFileListItemRef = loginItems.objectAtIndex(i) as! LSSharedFileListItemRef
if let itemURL = LSSharedFileListItemCopyResolvedURL(currentItemRef, 0, nil) {
if (itemURL.takeRetainedValue() as NSURL).isEqual(appUrl) {
return (currentItemRef, lastItemRef)
}
}
}
return (nil, lastItemRef)
} else {
let addatstart: LSSharedFileListItemRef = kLSSharedFileListItemBeforeFirst.takeRetainedValue()
return(nil,addatstart)
}
}
}
return (nil, nil)
}
func toggleLaunchAtStartup() {
let itemReferences = itemReferencesInLoginItems()
let shouldBeToggled = (itemReferences.existingReference == nil)
if let loginItemsRef = LSSharedFileListCreate(nil, kLSSharedFileListSessionLoginItems.takeRetainedValue(), nil).takeRetainedValue() as LSSharedFileListRef? {
if shouldBeToggled {
if let appUrl : CFURLRef = NSURL.fileURLWithPath(NSBundle.mainBundle().bundlePath) {
LSSharedFileListInsertItemURL(loginItemsRef, itemReferences.lastReference, nil, nil, appUrl, nil, nil)
}
} else {
if let itemRef = itemReferences.existingReference {
LSSharedFileListItemRemove(loginItemsRef,itemRef);
}
}
}
}
लेकिन LSSharedFileListCreate
, LSSharedFileListInsertItemURL
, LSSharedFileListItemRemove
, kLSSharedFileListItemBeforeFirst
, LSSharedFileListItemCopyResolvedURL
, LSSharedFileListCopySnapshot
, kLSSharedFileListSessionLoginItems
ओएस एक्स 10.11 में पदावनत किया गया। मैक ओएस के नवीनतम संस्करण पर यह काम कैसे करें? इस कोड को कैसे बदलें या फिर से लिखें?
अच्छा और वास्तव में जवाब देने में बहुत समय लगता है! –
'NCConstants.KILLME' कहां परिभाषित किया गया है? –
लॉन्चर एप्लिकेशन और मुख्य एप्लिकेशन में। आप इसे इस तरह परिभाषित कर सकते हैं: कक्षा एनसीसीओन्स्टेंट्स { // निरंतर स्थिर बताएं किलीएम = अधिसूचना। नाम ("हत्यारा")} – Thomas