Java: Как получить метод прокрутки в OS X Lion? - PullRequest
6 голосов
/ 16 августа 2011

Поскольку OS X поддерживает «естественную прокрутку», мои приложения работают неправильно. Естественная прокрутка сделана для полос прокрутки, что мне действительно нравится. Но когда я хочу увеличить / уменьшить масштаб, это работает неправильно. Итак, я хочу проверить метод прокрутки для OS X.
Если это «естественно», я возьму противоположное значение прокрутки от MouseWheelEvent.getWheelRotation(), чтобы мое поведение при увеличении / уменьшении было правильным.

Итак, вкратце: как узнать, использует ли OS X естественную прокрутку или нет?

Ответы [ 3 ]

3 голосов
/ 16 августа 2011

Нашли решение.

Во-первых, вам нужна библиотека для чтения файлов .plist.Я использовал этот .

Чем вы можете легко прочитать в GlobalPreferneces.plist (проверено с помощью fseventer, какой файл изменяется при изменении параметра прокрутки), чтобы узнать, какой тип прокрутки включенкак это:

try {
    File globalPref = new File(System.getProperty("user.home") + "/Library/Preferences/.GlobalPreferences.plist");
    NSDictionary dict = (NSDictionary)PropertyListParser.parse(globalPref);

    NSNumber pref = (NSNumber)dict.objectForKey("com.apple.swipescrolldirection");

    if(pref.boolValue()) {
        //natural scrolling is enabled
    }  
} catch (Exception ex) {
    System.out.println("Faild to parse plist: " + ex.getMessage());
}
1 голос
/ 16 августа 2011

Посмотрите на ответ Майка Свинглера в списке рассылки java-dev.Об этом есть целая тема.

1 голос
/ 16 августа 2011

Поскольку Apple отказалась от Java, я не думаю, что есть встроенный метод для определения, включена ли естественная прокрутка. Однако вы можете прочитать в файлах .plist для настройки поведения мыши / сенсорной панели (это базовый XML-файл) и найти свойство, чтобы включить естественную прокрутку, равную true или false.

Вы можете найти необходимые файлы .plist здесь:

Пользователь / Библиотека / Настройки / <- Эта папка скрыта в Lion! </p>

com.apple.driver.AppleBluetoothMultitouch.mouse.plist

com.apple.driver.AppleHIDMouse.plist

Edit:

Вы не можете читать в plist-файле со стандартной Java Framework, так как начиная с Mac OS 10.4 все .plists сохраняются в двоичном формате. Смотрите мой другой ответ для правильного решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...