. -, TISCreateInputSourceList()
"" , , (+1)
, takeRetainedValue(),
takeUnretainedValue(), :
let srcs = TISCreateInputSourceList(nil, true).takeRetainedValue()
CFArray... ,
NSArray ( " " ):
let srcs = TISCreateInputSourceList(nil, true).takeRetainedValue() as NSArray
CFStringRef,
TISInputSource . NSArray Swift:
let srcs = TISCreateInputSourceList(nil, true).takeRetainedValue()
as NSArray as! [TISInputSource]
as! ,
, .
:
for src in srcs {
// do something with `src` (which is a `TISInputSource`)
}
TISGetInputSourceProperty(), :
let ptr = TISGetInputSourceProperty(src, kTISPropertyInputSourceID)
" void" (UnsafeMutablePointer<Void>),
( CFStringRef
kTISPropertyInputSourceID). ,
( self UnsafeMutablePointer <Void> type swift):
let val = Unmanaged<CFString>.fromOpaque(COpaquePointer(ptr)).takeUnretainedValue()
,
CFStringRef NSString String:
let val = Unmanaged<CFString>.fromOpaque(COpaquePointer(ptr)).takeUnretainedValue()
as String
:
let srcs = TISCreateInputSourceList(nil, true).takeRetainedValue()
as NSArray as! [TISInputSource]
for src in srcs {
let ptr = TISGetInputSourceProperty(src, kTISPropertyInputSourceID)
let val = Unmanaged<CFString>.fromOpaque(COpaquePointer(ptr)).takeUnretainedValue()
as String
print(val)
}