Я также попытался преобразовать Apple's IMKit sample первую часть «0 Ввод числа» проект от Objective-C Свифта
Если «0 Ввод числа» в Swift проектных работ, то следующие 1,2,3 Ввод числа могут быть преобразованы быстро ,
«NumberInput 0» в проекте Swift может быть скомпилирован, установлен, добавлен в источники ввода, может быть выбран и запущен, но подкласс IMKInputController NumberInputController inputText (...) не может быть достигнут, набрав клавиши, когда Я с помощью Xcode для отладки NumberInput.app
0 Ввод числа просто включает в себя только 4 файла, несколько строк кода:
- AppDelegate.swift
- NumberInputController.swift
- MainMenu.xib
- Info.plist
NumberInputController указана в info.plist.
Я успешно воссоздал проект «NumberInput 0» с использованием Objective-C с Xcode 7, все работает, функция ввода NumberInputController inputText (...) может быть достигнута путем ввода ключей при отладке.
Я новичок в Swift, может ли кто-нибудь помочь мне получить «NumberInput 0» в Swift?
Ниже приведены содержание 3 файла:
AppDelegate.swift
import Cocoa
import InputMethodKit
let kConnectionName = "NumberInput_1_Connection"
var server:IMKServer = IMKServer.init()
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(aNotification: NSNotification) {
let identifier = NSBundle.mainBundle().bundleIdentifier;
server = IMKServer.init(name: kConnectionName, bundleIdentifier: identifier)
}
func applicationWillTerminate(aNotification: NSNotification) {
}
}
NumberInputController.swift
import Cocoa
import InputMethodKit
class NumberInputController: IMKInputController {
override func inputText(string:String, client: AnyObject) ->Bool {
// Debug break point put here
print(string);
return false;
}
}
информация.PLIST
...
<dict>
\t ....
<key>NSMainNibFile</key>
\t <string>MainMenu</string>
\t <key>NSPrincipalClass</key>
\t <string>NSApplication</string>
\t <key>LSBackgroundOnly</key>
\t <string>1</string>
\t <key>InputMethodConnectionName</key>
\t <string>NumberInput_1_Connection</string>
\t <key>InputMethodServerControllerClass</key>
\t <string>NumberInputController</string>
\t <key>tsInputMethodIconFileKey</key>
\t <string>nine.tiff</string>
\t <key>tsInputMethodCharacterRepertoireKey</key>
\t <array>
\t \t <string>Latn</string>
\t </array>
</dict>
</plist>
Спасибо.
Проект Pkamb по-прежнему находится в объективе-c, а не в Swift. – heMac